diff --git a/src/main/java/com/imprimelibros/erp/ErpApplication.java b/src/main/java/com/imprimelibros/erp/ErpApplication.java index 0e589a8..97471b8 100644 --- a/src/main/java/com/imprimelibros/erp/ErpApplication.java +++ b/src/main/java/com/imprimelibros/erp/ErpApplication.java @@ -3,8 +3,10 @@ package com.imprimelibros.erp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.ConfigurationPropertiesScan; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication +@EnableScheduling @ConfigurationPropertiesScan(basePackages = "com.imprimelibros.erp") public class ErpApplication { diff --git a/src/main/java/com/imprimelibros/erp/cart/CartCleanupService.java b/src/main/java/com/imprimelibros/erp/cart/CartCleanupService.java new file mode 100644 index 0000000..28af416 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/cart/CartCleanupService.java @@ -0,0 +1,28 @@ +package com.imprimelibros.erp.cart; + +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; + +@Service +public class CartCleanupService { + + private final CartRepository cartRepository; + + public CartCleanupService(CartRepository cartRepository) { + this.cartRepository = cartRepository; + } + + /** + * Ejecuta cada noche a las 2:00 AM + */ + @Transactional + @Scheduled(cron = "0 0 2 * * *") // cada día a las 02:00 + public void markAbandonedCarts() { + LocalDateTime limite = LocalDateTime.now().minusDays(7); + int updated = cartRepository.markOldCartsAsAbandoned(limite); + System.out.println("Carritos abandonados marcados: " + updated); + } +} diff --git a/src/main/java/com/imprimelibros/erp/cart/CartRepository.java b/src/main/java/com/imprimelibros/erp/cart/CartRepository.java index c9a8cd4..1547391 100644 --- a/src/main/java/com/imprimelibros/erp/cart/CartRepository.java +++ b/src/main/java/com/imprimelibros/erp/cart/CartRepository.java @@ -1,9 +1,12 @@ package com.imprimelibros.erp.cart; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import java.util.List; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; import java.util.Optional; public interface CartRepository extends JpaRepository { @@ -18,5 +21,15 @@ public interface CartRepository extends JpaRepository { where c.id = :id """) Optional findByIdFetchAll(@Param("id") Long id); + + @Modifying + @Transactional + @Query(""" + UPDATE Cart c + SET c.status = 'ABANDONED' + WHERE c.status = 'ACTIVE' + AND c.updatedAt < :limite + """) + int markOldCartsAsAbandoned(LocalDateTime limite); } diff --git a/src/main/java/com/imprimelibros/erp/cart/CartService.java b/src/main/java/com/imprimelibros/erp/cart/CartService.java index 7d07149..7b53eda 100644 --- a/src/main/java/com/imprimelibros/erp/cart/CartService.java +++ b/src/main/java/com/imprimelibros/erp/cart/CartService.java @@ -53,6 +53,14 @@ public class CartService { this.pedidoService = pedidoService; } + + public Cart findById(Long cartId) { + return cartRepo.findById(cartId) + .orElseThrow(() -> new IllegalArgumentException("Carrito no encontrado")); + } + + + /** Devuelve el carrito activo o lo crea si no existe. */ @Transactional public Cart getOrCreateActiveCart(Long userId) { @@ -136,6 +144,14 @@ public class CartService { cartRepo.save(cart); } + @Transactional + public void lockCartById(Long cartId) { + Cart cart = cartRepo.findById(cartId) + .orElseThrow(() -> new IllegalArgumentException("Carrito no encontrado")); + cart.setStatus(Cart.Status.LOCKED); + cartRepo.save(cart); + } + @Transactional public long countItems(Long userId) { Cart cart = getOrCreateActiveCart(userId); @@ -291,7 +307,9 @@ public class CartService { summary.put("fidelizacion", fidelizacion + "%"); summary.put("descuento", Utils.formatCurrency(-descuento, locale)); summary.put("total", Utils.formatCurrency(total, locale)); + summary.put("amountCents", Math.round(total * 100)); summary.put("errorShipmentCost", errorShipementCost); + summary.put("cartId", cart.getId()); return summary; } diff --git a/src/main/java/com/imprimelibros/erp/checkout/CheckoutController.java b/src/main/java/com/imprimelibros/erp/checkout/CheckoutController.java index 00474fc..79a9563 100644 --- a/src/main/java/com/imprimelibros/erp/checkout/CheckoutController.java +++ b/src/main/java/com/imprimelibros/erp/checkout/CheckoutController.java @@ -6,17 +6,20 @@ import java.util.Locale; import java.util.Map; import org.springframework.context.MessageSource; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.server.ResponseStatusException; import com.imprimelibros.erp.common.Utils; import com.imprimelibros.erp.i18n.TranslationService; import com.imprimelibros.erp.paises.PaisesService; - +import com.imprimelibros.erp.direcciones.Direccion; import com.imprimelibros.erp.direcciones.DireccionService; - +import com.imprimelibros.erp.cart.Cart; import com.imprimelibros.erp.cart.CartService; @Controller @@ -44,23 +47,29 @@ public class CheckoutController { List keys = List.of( "app.cancelar", "app.seleccionar", - "checkout.shipping.add.title", - "checkout.shipping.select-placeholder", - "checkout.shipping.new-address", "app.yes", - "app.cancelar"); + "checkout.billing-address.title", + "checkout.billing-address.new-address", + "checkout.billing-address.select-placeholder", + "checkout.billing-address.errors.noAddressSelected"); Map translations = translationService.getTranslations(locale, keys); model.addAttribute("languageBundle", translations); - var items = this.cartService.listItems(Utils.currentUserId(principal), locale); - for (var item : items) { - if (item.get("hasSample") != null && (Boolean) item.get("hasSample")) { - model.addAttribute("hasSample", true); - break; - } - } - model.addAttribute("items", items); + Long userId = Utils.currentUserId(principal); + Cart cart = cartService.getOrCreateActiveCart(userId); + model.addAttribute("summary", cartService.getCartSummary(cart, locale)); return "imprimelibros/checkout/checkout"; // crea esta vista si quieres (tabla simple) } + + @GetMapping("/get-address/{id}") + public String getDireccionCard(@PathVariable Long id, Model model, Locale locale) { + Direccion dir = direccionService.findById(id) + .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND)); + model.addAttribute("pais", messageSource.getMessage("paises." + dir.getPais().getKeyword(), null, + dir.getPais().getKeyword(), locale)); + model.addAttribute("direccion", dir); + + return "imprimelibros/direcciones/direccionBillingCard :: direccionBillingCard(direccion=${direccion}, pais=${pais})"; + } } diff --git a/src/main/java/com/imprimelibros/erp/common/Utils.java b/src/main/java/com/imprimelibros/erp/common/Utils.java index a5262b7..d5aae69 100644 --- a/src/main/java/com/imprimelibros/erp/common/Utils.java +++ b/src/main/java/com/imprimelibros/erp/common/Utils.java @@ -4,6 +4,8 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.security.Principal; import java.text.NumberFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -320,4 +322,12 @@ public class Utils { resumen.put("servicios", serviciosExtras); return resumen; } + + public static String formatDateTime(LocalDateTime dateTime, Locale locale) { + if (dateTime == null) { + return ""; + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm", locale); + return dateTime.format(formatter); + } } diff --git a/src/main/java/com/imprimelibros/erp/config/SecurityConfig.java b/src/main/java/com/imprimelibros/erp/config/SecurityConfig.java index 096488d..8ffbb77 100644 --- a/src/main/java/com/imprimelibros/erp/config/SecurityConfig.java +++ b/src/main/java/com/imprimelibros/erp/config/SecurityConfig.java @@ -30,143 +30,151 @@ import jakarta.servlet.http.HttpServletRequest; @Configuration public class SecurityConfig { - private final DataSource dataSource; + private final DataSource dataSource; - public SecurityConfig(DataSource dataSource) { - this.dataSource = dataSource; - } + public SecurityConfig(DataSource dataSource) { + this.dataSource = dataSource; + } - // ========== Beans base ========== + // ========== Beans base ========== - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } - // Remember-me (tabla persistent_logins) - @Bean - public PersistentTokenRepository persistentTokenRepository() { - JdbcTokenRepositoryImpl repo = new JdbcTokenRepositoryImpl(); - repo.setDataSource(dataSource); - // repo.setCreateTableOnStartup(true); // solo 1ª vez si necesitas crear la - // tabla - return repo; - } + // Remember-me (tabla persistent_logins) + @Bean + public PersistentTokenRepository persistentTokenRepository() { + JdbcTokenRepositoryImpl repo = new JdbcTokenRepositoryImpl(); + repo.setDataSource(dataSource); + // repo.setCreateTableOnStartup(true); // solo 1ª vez si necesitas crear la + // tabla + return repo; + } - // Provider que soporta UsernamePasswordAuthenticationToken - private static RequestMatcher pathStartsWith(String... prefixes) { - return new RequestMatcher() { - @Override - public boolean matches(HttpServletRequest request) { - String uri = request.getRequestURI(); - if (uri == null) - return false; - for (String p : prefixes) { - if (uri.startsWith(p)) - return true; - } - return false; - } - }; - } + // Provider que soporta UsernamePasswordAuthenticationToken + private static RequestMatcher pathStartsWith(String... prefixes) { + return new RequestMatcher() { + @Override + public boolean matches(HttpServletRequest request) { + String uri = request.getRequestURI(); + if (uri == null) + return false; + for (String p : prefixes) { + if (uri.startsWith(p)) + return true; + } + return false; + } + }; + } - @Bean - public SecurityFilterChain securityFilterChain( - HttpSecurity http, - @Value("${security.rememberme.key}") String keyRememberMe, - UserDetailsService userDetailsService, - PersistentTokenRepository tokenRepo, - PasswordEncoder passwordEncoder, UserServiceImpl userServiceImpl) throws Exception { + @Bean + public SecurityFilterChain securityFilterChain( + HttpSecurity http, + @Value("${security.rememberme.key}") String keyRememberMe, + UserDetailsService userDetailsService, + PersistentTokenRepository tokenRepo, + PasswordEncoder passwordEncoder, UserServiceImpl userServiceImpl) throws Exception { - DaoAuthenticationProvider provider = new DaoAuthenticationProvider(userServiceImpl); - provider.setPasswordEncoder(passwordEncoder); - http.authenticationProvider(provider); - http - .authenticationProvider(provider) + DaoAuthenticationProvider provider = new DaoAuthenticationProvider(userServiceImpl); + provider.setPasswordEncoder(passwordEncoder); + http.authenticationProvider(provider); + http + .authenticationProvider(provider) - .sessionManagement(session -> session - //.invalidSessionUrl("/login?expired") - .maximumSessions(1)) + .sessionManagement(session -> session + // .invalidSessionUrl("/login?expired") + .maximumSessions(1)) - // Ignora CSRF para tu recurso público (sin Ant/Mvc matchers) - .csrf(csrf -> csrf - .ignoringRequestMatchers(pathStartsWith("/presupuesto/public/"))) - // ====== RequestCache: sólo navegaciones HTML reales ====== - .requestCache(rc -> { - HttpSessionRequestCache cache = new HttpSessionRequestCache(); + // Ignora CSRF para tu recurso público (sin Ant/Mvc matchers) + .csrf(csrf -> csrf + .ignoringRequestMatchers(pathStartsWith("/presupuesto/public/"), + pathStartsWith("/pagos/redsys/"))) + // ====== RequestCache: sólo navegaciones HTML reales ====== + .requestCache(rc -> { + HttpSessionRequestCache cache = new HttpSessionRequestCache(); - // Navegación HTML (por tipo o por cabecera Accept) - RequestMatcher htmlPage = new OrRequestMatcher( - new MediaTypeRequestMatcher(MediaType.TEXT_HTML), - new MediaTypeRequestMatcher(MediaType.APPLICATION_XHTML_XML), - new RequestHeaderRequestMatcher("Accept", "text/html")); + // Navegación HTML (por tipo o por cabecera Accept) + RequestMatcher htmlPage = new OrRequestMatcher( + new MediaTypeRequestMatcher(MediaType.TEXT_HTML), + new MediaTypeRequestMatcher(MediaType.APPLICATION_XHTML_XML), + new RequestHeaderRequestMatcher("Accept", "text/html")); - // No AJAX - RequestMatcher nonAjax = new NegatedRequestMatcher( - new RequestHeaderRequestMatcher("X-Requested-With", "XMLHttpRequest")); + // No AJAX + RequestMatcher nonAjax = new NegatedRequestMatcher( + new RequestHeaderRequestMatcher("X-Requested-With", + "XMLHttpRequest")); - // Excluir sondas .well-known - RequestMatcher notWellKnown = new NegatedRequestMatcher(pathStartsWith("/.well-known/")); + // Excluir sondas .well-known + RequestMatcher notWellKnown = new NegatedRequestMatcher( + pathStartsWith("/.well-known/")); - // Excluir estáticos: comunes + tu /assets/** - RequestMatcher notStatic = new AndRequestMatcher( - new NegatedRequestMatcher(PathRequest.toStaticResources().atCommonLocations()), - new NegatedRequestMatcher(pathStartsWith("/assets/"))); - - RequestMatcher cartCount = new AndRequestMatcher( - new NegatedRequestMatcher(PathRequest.toStaticResources().atCommonLocations()), - new NegatedRequestMatcher(pathStartsWith("/cart/count"))); + // Excluir estáticos: comunes + tu /assets/** + RequestMatcher notStatic = new AndRequestMatcher( + new NegatedRequestMatcher(PathRequest.toStaticResources() + .atCommonLocations()), + new NegatedRequestMatcher(pathStartsWith("/assets/"))); - cache.setRequestMatcher(new AndRequestMatcher(htmlPage, nonAjax, notStatic, notWellKnown, cartCount)); - rc.requestCache(cache); - }) - // ======================================================== + RequestMatcher cartCount = new AndRequestMatcher( + new NegatedRequestMatcher(PathRequest.toStaticResources() + .atCommonLocations()), + new NegatedRequestMatcher(pathStartsWith("/cart/count"))); - .authorizeHttpRequests(auth -> auth - // Aquí usa patrones String (no deprecados) - .requestMatchers( - "/", - "/login", - "/signup", - "/verify", - "/auth/password/**", - "/assets/**", - "/css/**", - "/js/**", - "/images/**", - "/public/**", - "/presupuesto/public/**", - "/error", - "/favicon.ico", - "/.well-known/**", // opcional - "/api/pdf/presupuesto/**" - ).permitAll() - .requestMatchers("/users/**").hasAnyRole("SUPERADMIN", "ADMIN") - .anyRequest().authenticated()) + cache.setRequestMatcher(new AndRequestMatcher(htmlPage, nonAjax, notStatic, + notWellKnown, cartCount)); + rc.requestCache(cache); + }) + // ======================================================== - .formLogin(login -> login - .loginPage("/login").permitAll() - .loginProcessingUrl("/login") - .usernameParameter("username") - .passwordParameter("password") - .defaultSuccessUrl("/", false) // respeta SavedRequest (ya filtrada) - .failureUrl("/login?error")) + .authorizeHttpRequests(auth -> auth + // Aquí usa patrones String (no deprecados) + .requestMatchers( + "/", + "/login", + "/signup", + "/verify", + "/auth/password/**", + "/assets/**", + "/css/**", + "/js/**", + "/images/**", + "/public/**", + "/presupuesto/public/**", + "/error", + "/favicon.ico", + "/.well-known/**", // opcional + "/api/pdf/presupuesto/**", + "/pagos/redsys/**" + ) + .permitAll() + .requestMatchers("/users/**").hasAnyRole("SUPERADMIN", "ADMIN") + .anyRequest().authenticated()) - .rememberMe(rm -> rm - .key(keyRememberMe) - .rememberMeParameter("remember-me") - .rememberMeCookieName("IMPRIMELIBROS_REMEMBER") - .tokenValiditySeconds(60 * 60 * 24 * 2) - .userDetailsService(userDetailsService) - .tokenRepository(tokenRepo)) + .formLogin(login -> login + .loginPage("/login").permitAll() + .loginProcessingUrl("/login") + .usernameParameter("username") + .passwordParameter("password") + .defaultSuccessUrl("/", false) // respeta SavedRequest (ya filtrada) + .failureUrl("/login?error")) - .logout(logout -> logout - .logoutUrl("/logout") - .logoutSuccessUrl("/") - .invalidateHttpSession(true) - .deleteCookies("JSESSIONID", "IMPRIMELIBROS_REMEMBER") - .permitAll()); + .rememberMe(rm -> rm + .key(keyRememberMe) + .rememberMeParameter("remember-me") + .rememberMeCookieName("IMPRIMELIBROS_REMEMBER") + .tokenValiditySeconds(60 * 60 * 24 * 2) + .userDetailsService(userDetailsService) + .tokenRepository(tokenRepo)) - return http.build(); - } + .logout(logout -> logout + .logoutUrl("/logout") + .logoutSuccessUrl("/") + .invalidateHttpSession(true) + .deleteCookies("JSESSIONID", "IMPRIMELIBROS_REMEMBER") + .permitAll()); + + return http.build(); + } } diff --git a/src/main/java/com/imprimelibros/erp/direcciones/DireccionController.java b/src/main/java/com/imprimelibros/erp/direcciones/DireccionController.java index 398500c..bcd42a5 100644 --- a/src/main/java/com/imprimelibros/erp/direcciones/DireccionController.java +++ b/src/main/java/com/imprimelibros/erp/direcciones/DireccionController.java @@ -506,6 +506,29 @@ public class DireccionController { } + @GetMapping(value = "/facturacion/select2", produces = "application/json") + @ResponseBody + public Map getSelect2Facturacion( + @RequestParam(value = "q", required = false) String q1, + @RequestParam(value = "term", required = false) String q2, + Authentication auth) { + + boolean isAdmin = auth.getAuthorities().stream() + .anyMatch(a -> a.getAuthority().equals("ROLE_ADMIN") || a.getAuthority().equals("ROLE_SUPERADMIN")); + + Long currentUserId = null; + if (!isAdmin) { + if (auth != null && auth.getPrincipal() instanceof UserDetailsImpl udi) { + currentUserId = udi.getId(); + } else if (auth != null) { + currentUserId = userRepo.findIdByUserNameIgnoreCase(auth.getName()).orElse(null); + } + } + + return direccionService.getForSelectFacturacion(q1, q2, isAdmin ? null : currentUserId); + + } + private boolean isOwnerOrAdmin(Authentication auth, Long ownerId) { if (auth == null) { return false; diff --git a/src/main/java/com/imprimelibros/erp/direcciones/DireccionRepository.java b/src/main/java/com/imprimelibros/erp/direcciones/DireccionRepository.java index fc45640..7abbf33 100644 --- a/src/main/java/com/imprimelibros/erp/direcciones/DireccionRepository.java +++ b/src/main/java/com/imprimelibros/erp/direcciones/DireccionRepository.java @@ -38,6 +38,10 @@ public interface DireccionRepository // find by user_id List findByUserId(Long userId); + // find by user_id and direccion_facturacion = true + @Query("SELECT d FROM Direccion d WHERE (:userId IS NULL OR d.user.id = :userId) AND d.direccionFacturacion = true") + List findByUserIdAndDireccionFacturacion(@Param("userId") Long userId); + // find by user_id with deleted @Query(value = "SELECT * FROM direcciones WHERE user_id = :userId", nativeQuery = true) List findByUserIdWithDeleted(@Param("userId") Long userId); diff --git a/src/main/java/com/imprimelibros/erp/direcciones/DireccionService.java b/src/main/java/com/imprimelibros/erp/direcciones/DireccionService.java index 1f1d4d5..f74561a 100644 --- a/src/main/java/com/imprimelibros/erp/direcciones/DireccionService.java +++ b/src/main/java/com/imprimelibros/erp/direcciones/DireccionService.java @@ -77,6 +77,65 @@ public class DireccionService { } } + + public Map getForSelectFacturacion(String q1, String q2, Long userId) { + try { + + // Termino de búsqueda (Select2 usa 'q' o 'term' según versión/config) + String search = Optional.ofNullable(q1).orElse(q2); + if (search != null) { + search = search.trim(); + } + final String q = (search == null || search.isEmpty()) + ? null + : search.toLowerCase(); + + List all = repo.findByUserIdAndDireccionFacturacion(userId); + + // Mapear a opciones id/text con i18n y filtrar por búsqueda si llega + List> options = all.stream() + .map(cc -> { + String id = cc.getId().toString(); + String alias = cc.getAlias(); + String direccion = cc.getDireccion(); + String cp = String.valueOf(cc.getCp()); + String ciudad = cc.getCiudad(); + String att = cc.getAtt(); + Map m = new HashMap<>(); + m.put("id", id); // lo normal en Select2: id = valor que guardarás (code3) + m.put("text", alias); // texto mostrado, i18n con fallback a keyword + m.put("cp", cp); + m.put("ciudad", ciudad); + m.put("att", att); + m.put("alias", alias); + m.put("direccion", direccion); + return m; + }) + .filter(opt -> { + if (q == null || q.isEmpty()) + return true; + String cp = opt.get("cp"); + String ciudad = opt.get("ciudad").toLowerCase(); + String att = opt.get("att").toLowerCase(); + String alias = opt.get("alias").toLowerCase(); + String text = opt.get("text").toLowerCase(); + String direccion = opt.get("direccion").toLowerCase(); + return text.contains(q) || cp.contains(q) || ciudad.contains(q) || att.contains(q) + || alias.contains(q) || direccion.contains(q); + }) + .sorted(Comparator.comparing(m -> m.get("text"), Collator.getInstance())) + .collect(Collectors.toList()); + + // Estructura Select2 + Map resp = new HashMap<>(); + resp.put("results", options); + return resp; + } catch (Exception e) { + e.printStackTrace(); + return Map.of("results", List.of()); + } + } + public Optional findById(Long id) { return repo.findById(id); } diff --git a/src/main/java/com/imprimelibros/erp/payments/PaymentController.java b/src/main/java/com/imprimelibros/erp/payments/PaymentController.java new file mode 100644 index 0000000..f47421f --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/PaymentController.java @@ -0,0 +1,331 @@ +package com.imprimelibros.erp.payments; + +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; +import org.springframework.context.MessageSource; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.imprimelibros.erp.common.Utils; +import com.imprimelibros.erp.datatables.DataTable; +import com.imprimelibros.erp.datatables.DataTablesParser; +import com.imprimelibros.erp.datatables.DataTablesRequest; +import com.imprimelibros.erp.datatables.DataTablesResponse; +import com.imprimelibros.erp.i18n.TranslationService; +import com.imprimelibros.erp.payments.model.Payment; +import com.imprimelibros.erp.payments.model.PaymentTransaction; +import com.imprimelibros.erp.payments.model.PaymentTransactionStatus; +import com.imprimelibros.erp.payments.model.PaymentTransactionType; +import com.imprimelibros.erp.payments.repo.PaymentTransactionRepository; +import com.imprimelibros.erp.users.User; +import com.imprimelibros.erp.users.UserDao; + +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@Controller +@RequestMapping("/pagos") +@PreAuthorize("hasRole('SUPERADMIN')") +public class PaymentController { + + protected final PaymentService paymentService; + protected final MessageSource messageSource; + protected final TranslationService translationService; + protected final PaymentTransactionRepository repoPaymentTransaction; + protected final UserDao repoUser; + + public PaymentController(PaymentTransactionRepository repoPaymentTransaction, UserDao repoUser, + MessageSource messageSource, TranslationService translationService, PaymentService paymentService) { + this.repoPaymentTransaction = repoPaymentTransaction; + this.repoUser = repoUser; + this.messageSource = messageSource; + this.translationService = translationService; + this.paymentService = paymentService; + + } + + @GetMapping() + public String index(Model model, Locale locale) { + + List keys = List.of( + "app.cancelar", + "app.aceptar", + "pagos.refund.title", + "pagos.refund.text", + "pagos.refund.success", + "pagos.refund.error.general", + "pagos.refund.error.invalid-number", + "pagos.transferencia.finalizar.title", + "pagos.transferencia.finalizar.text", + "pagos.transferencia.finalizar.success"); + + Map translations = translationService.getTranslations(locale, keys); + model.addAttribute("languageBundle", translations); + + return "imprimelibros/pagos/gestion-pagos"; + } + + @GetMapping(value = "datatable/redsys", produces = "application/json") + @ResponseBody + public DataTablesResponse> getDatatableRedsys(HttpServletRequest request, Locale locale) { + + DataTablesRequest dt = DataTablesParser.from(request); + + List searchable = List.of( + "payment.gatewayOrderId", + "payment.orderId" + // "client" no, porque lo calculas a posteriori + ); + + // Campos ordenables + List orderable = List.of( + "payment.gatewayOrderId", + "payment.orderId", + "amountCents", + "payment.amountRefundedCents", + "createdAt"); + + Specification base = Specification.allOf( + (root, query, cb) -> cb.equal(root.get("status"), PaymentTransactionStatus.succeeded)); + base = base.and((root, query, cb) -> cb.equal(root.get("type"), PaymentTransactionType.CAPTURE)); + + String clientSearch = dt.getColumnSearch("client"); + + // 2) Si hay filtro, traducirlo a userIds y añadirlo al Specification + if (clientSearch != null) { + List userIds = repoUser.findIdsByFullNameLike(clientSearch.trim()); + + if (userIds.isEmpty()) { + // Ningún usuario coincide → forzamos 0 resultados + base = base.and((root, query, cb) -> cb.disjunction()); + } else { + base = base.and((root, query, cb) -> root.join("payment").get("userId").in(userIds)); + } + } + Long total = repoPaymentTransaction.count(base); + + return DataTable + .of(repoPaymentTransaction, PaymentTransaction.class, dt, searchable) + .orderable(orderable) + .add("created_at", pago -> Utils.formatDateTime(pago.getCreatedAt(), locale)) + .add("client", pago -> { + if (pago.getPayment() != null && pago.getPayment().getUserId() != null) { + Payment payment = pago.getPayment(); + if (payment.getUserId() != null) { + Optional user = repoUser.findById(payment.getUserId().longValue()); + return user.map(User::getFullName).orElse(""); + } + } + return ""; + }) + .add("gateway_order_id", pago -> { + if (pago.getPayment() != null) { + return pago.getPayment().getGatewayOrderId(); + } else { + return ""; + } + }) + .add("orderId", pago -> { + if (pago.getPayment() != null && pago.getPayment().getOrderId() != null) { + return pago.getPayment().getOrderId().toString(); + } else { + return ""; + } + }) + .add("amount_cents", pago -> Utils.formatCurrency(pago.getAmountCents() / 100.0, locale)) + .add("amount_cents_refund", pago -> { + Payment payment = pago.getPayment(); + if (payment != null) { + return Utils.formatCurrency(payment.getAmountRefundedCents() / 100.0, locale); + } + return ""; + }) + .add("actions", pago -> { + Payment p = pago.getPayment(); + if (p != null) { + if (pago.getAmountCents() - p.getAmountRefundedCents() > 0) { + return "" + + messageSource.getMessage("pagos.table.devuelto", null, locale) + ""; + } + return ""; + } else { + return ""; + } + }) + .where(base) + .toJson(total); + + } + + @GetMapping(value = "datatable/transferencias", produces = "application/json") + @ResponseBody + public DataTablesResponse> getDatatableTransferencias(HttpServletRequest request, + Locale locale) { + + DataTablesRequest dt = DataTablesParser.from(request); + + List searchable = List.of( + // "client" no, porque lo calculas a posteriori + ); + + // Campos ordenables + List orderable = List.of( + "transferId", + "status", + "amountCents", + "payment.amountRefundedCents", + "createdAt", "updatedAt"); + + Specification base = (root, query, cb) -> cb.or( + cb.equal(root.get("status"), PaymentTransactionStatus.pending), + cb.equal(root.get("status"), PaymentTransactionStatus.succeeded)); + + base = base.and((root, query, cb) -> cb.equal(root.get("type"), PaymentTransactionType.CAPTURE)); + base = base.and((root, query, cb) -> cb.equal(root.get("payment").get("gateway"), "bank_transfer")); + + String clientSearch = dt.getColumnSearch("client"); + + // 2) Si hay filtro, traducirlo a userIds y añadirlo al Specification + if (clientSearch != null) { + List userIds = repoUser.findIdsByFullNameLike(clientSearch.trim()); + + if (userIds.isEmpty()) { + // Ningún usuario coincide → forzamos 0 resultados + base = base.and((root, query, cb) -> cb.disjunction()); + } else { + base = base.and((root, query, cb) -> root.join("payment").get("userId").in(userIds)); + } + } + Long total = repoPaymentTransaction.count(base); + + return DataTable + .of(repoPaymentTransaction, PaymentTransaction.class, dt, searchable) + .orderable(orderable) + .add("created_at", pago -> Utils.formatDateTime(pago.getCreatedAt(), locale)) + .add("processed_at", pago -> Utils.formatDateTime(pago.getProcessedAt(), locale)) + .add("client", pago -> { + if (pago.getPayment() != null && pago.getPayment().getUserId() != null) { + Payment payment = pago.getPayment(); + if (payment.getUserId() != null) { + Optional user = repoUser.findById(payment.getUserId().longValue()); + return user.map(User::getFullName).orElse(""); + } + } + return ""; + }) + .add("transfer_id", pago -> { + if (pago.getPayment() != null) { + return "TRANSF-" + pago.getPayment().getOrderId(); + } else { + return ""; + } + }) + .add("order_id", pago -> { + if (pago.getStatus() != PaymentTransactionStatus.pending) { + if (pago.getPayment() != null && pago.getPayment().getOrderId() != null) { + return pago.getPayment().getOrderId().toString(); + } else { + return ""; + } + } + return messageSource.getMessage("pagos.transferencia.no-pedido", null, "Pendiente", locale); + + }).add("amount_cents", pago -> Utils.formatCurrency(pago.getAmountCents() / 100.0, locale)) + .add("amount_cents_refund", pago -> + + { + Payment payment = pago.getPayment(); + if (payment != null) { + return Utils.formatCurrency(payment.getAmountRefundedCents() / 100.0, locale); + } + return ""; + }).add("status", pago -> { + switch (pago.getStatus()) { + case PaymentTransactionStatus.pending: + return messageSource.getMessage("pagos.table.estado.pending", null, "Pendiente", locale); + case PaymentTransactionStatus.succeeded: + return messageSource.getMessage("pagos.table.estado.succeeded", null, "Completada", locale); + case PaymentTransactionStatus.failed: + return messageSource.getMessage("pagos.table.estado.failed", null, "Fallido", locale); + default: + return pago.getStatus().name(); + } + }).add("actions", pago -> { + Payment p = pago.getPayment(); + if (p != null) { + String actions = ""; + if (pago.getStatus() != PaymentTransactionStatus.succeeded) { + actions += "" + + messageSource.getMessage("pagos.table.finalizar", null, locale) + " "; + + } + if ((pago.getAmountCents() - p.getAmountRefundedCents() > 0) + && pago.getStatus() == PaymentTransactionStatus.succeeded) { + actions += "" + + messageSource.getMessage("pagos.table.devuelto", null, locale) + ""; + } + return actions; + } else { + return ""; + } + }).where(base).toJson(total); + + } + + @PostMapping(value = "/transfer/completed/{id}", produces = "application/json") + public ResponseEntity> markTransferAsCaptured(@PathVariable Long id) { + + Map response; + try { + paymentService.markBankTransferAsCaptured(id); + response = Map.of("success", true); + return ResponseEntity.ok(response); + + } catch (Exception e) { + e.printStackTrace(); + response = Map.of("success", false); + response.put("error", e.getMessage()); + return ResponseEntity.badRequest().body(response); + } + } + + @PostMapping(value = "/transfer/refund/{id}", produces = "application/json") + public ResponseEntity> refundTransfer(@PathVariable Long id, + @RequestParam("amountCents") Long amountCents) { + + Map response; + try { + paymentService.refundBankTransfer(id, amountCents); + response = Map.of("success", true); + return ResponseEntity.ok(response); + + } catch (Exception e) { + e.printStackTrace(); + response = Map.of("success", false); + response.put("error", e.getMessage()); + return ResponseEntity.badRequest().body(response); + } + } +} diff --git a/src/main/java/com/imprimelibros/erp/payments/PaymentService.java b/src/main/java/com/imprimelibros/erp/payments/PaymentService.java new file mode 100644 index 0000000..804c6f8 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/PaymentService.java @@ -0,0 +1,469 @@ +package com.imprimelibros.erp.payments; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.imprimelibros.erp.cart.Cart; +import com.imprimelibros.erp.cart.CartService; +import com.imprimelibros.erp.payments.model.*; +import com.imprimelibros.erp.payments.repo.PaymentRepository; +import com.imprimelibros.erp.payments.repo.PaymentTransactionRepository; +import com.imprimelibros.erp.payments.repo.RefundRepository; +import com.imprimelibros.erp.redsys.RedsysService; +import com.imprimelibros.erp.redsys.RedsysService.FormPayload; +import com.imprimelibros.erp.redsys.RedsysService.RedsysNotification; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.imprimelibros.erp.payments.repo.WebhookEventRepository; + +import java.time.LocalDateTime; +import java.util.Objects; + +@Service +public class PaymentService { + + private final PaymentRepository payRepo; + private final PaymentTransactionRepository txRepo; + private final RefundRepository refundRepo; + private final RedsysService redsysService; + private final WebhookEventRepository webhookEventRepo; + private final ObjectMapper om = new ObjectMapper(); + private final CartService cartService; + + public PaymentService(PaymentRepository payRepo, + PaymentTransactionRepository txRepo, + RefundRepository refundRepo, + RedsysService redsysService, + WebhookEventRepository webhookEventRepo, CartService cartService) { + this.payRepo = payRepo; + this.txRepo = txRepo; + this.refundRepo = refundRepo; + this.redsysService = redsysService; + this.webhookEventRepo = webhookEventRepo; + this.cartService = cartService; + } + + /** + * Crea el Payment en BD y construye el formulario de Redsys usando la API + * oficial (ApiMacSha256). + */ + @Transactional + public FormPayload createRedsysPayment(Long cartId, long amountCents, String currency, String method) + throws Exception { + Payment p = new Payment(); + p.setOrderId(null); + + Cart cart = this.cartService.findById(cartId); + if (cart != null && cart.getUserId() != null) { + p.setUserId(cart.getUserId()); + } + p.setCurrency(currency); + p.setAmountTotalCents(amountCents); + p.setGateway("redsys"); + p.setStatus(PaymentStatus.requires_payment_method); + p = payRepo.saveAndFlush(p); + + // ANTES: + // String dsOrder = String.format("%012d", p.getId()); + + // AHORA: timestamp + long now = System.currentTimeMillis(); + String dsOrder = String.format("%012d", now % 1_000_000_000_000L); + + p.setGatewayOrderId(dsOrder); + payRepo.save(p); + + RedsysService.PaymentRequest req = new RedsysService.PaymentRequest(dsOrder, amountCents, + "Compra en Imprimelibros", cartId); + + if ("bizum".equalsIgnoreCase(method)) { + return redsysService.buildRedirectFormBizum(req); + } else { + return redsysService.buildRedirectForm(req); + } + } + + @Transactional + public void handleRedsysNotification(String dsSignature, String dsMerchantParameters) throws Exception { + + // 0) Intentamos parsear la notificación. Si falla, registramos el webhook crudo + // y salimos. + RedsysNotification notif; + try { + notif = redsysService.validateAndParseNotification(dsSignature, dsMerchantParameters); + } catch (Exception ex) { + WebhookEvent e = new WebhookEvent(); + e.setProvider("redsys"); + e.setEventType("payment_notification_parse_error"); + e.setEventId("PARSE_ERROR_" + System.currentTimeMillis()); + e.setSignature(dsSignature); + e.setPayload(dsMerchantParameters); + e.setProcessed(false); + e.setAttempts(1); + e.setLastError("Error parsing/validating Redsys notification: " + ex.getMessage()); + webhookEventRepo.save(e); + + // IMPORTANTE: NO re-lanzamos la excepción + // Simplemente salimos. Así se hace commit de este insert. + return; + } + + // 1) A partir de aquí, el parseo ha ido bien y tenemos notif.order, + // notif.amountCents, etc. + String provider = "redsys"; + String eventType = "payment_notification"; + String eventId = notif.order; + + WebhookEvent ev = webhookEventRepo + .findByProviderAndEventId(provider, eventId) + .orElseGet(() -> { + WebhookEvent e = new WebhookEvent(); + e.setProvider(provider); + e.setEventType(eventType); + e.setEventId(eventId); + e.setSignature(dsSignature); + try { + e.setPayload(om.writeValueAsString(notif.raw)); + } catch (Exception ex) { + e.setPayload(dsMerchantParameters); + } + e.setProcessed(false); + e.setAttempts(0); + return webhookEventRepo.save(e); + }); + + if (Boolean.TRUE.equals(ev.getProcessed())) { + return; + } + + Integer attempts = ev.getAttempts() == null ? 0 : ev.getAttempts(); + ev.setAttempts(attempts + 1); + ev.setLastError(null); + webhookEventRepo.save(ev); + + try { + Payment p = payRepo.findByGatewayAndGatewayOrderId("redsys", notif.order) + .orElseThrow(() -> new IllegalStateException("Payment no encontrado para Ds_Order " + notif.order)); + + if (!Objects.equals(p.getAmountTotalCents(), notif.amountCents)) { + throw new IllegalStateException("Importe inesperado: esperado=" + + p.getAmountTotalCents() + " recibido=" + notif.amountCents); + } + + if (p.getStatus() == PaymentStatus.captured + || p.getStatus() == PaymentStatus.partially_refunded + || p.getStatus() == PaymentStatus.refunded) { + ev.setProcessed(true); + ev.setProcessedAt(LocalDateTime.now()); + webhookEventRepo.save(ev); + return; + } + + boolean authorized = isRedsysAuthorized(notif); + + PaymentTransaction tx = new PaymentTransaction(); + tx.setPayment(p); + tx.setType(PaymentTransactionType.CAPTURE); + tx.setCurrency(p.getCurrency()); // "EUR" + tx.setAmountCents(notif.amountCents); + tx.setStatus(authorized + ? PaymentTransactionStatus.succeeded + : PaymentTransactionStatus.failed); + + Object authCode = notif.raw.get("Ds_AuthorisationCode"); + String gatewayTxId = null; + if (authCode != null) { + String trimmed = String.valueOf(authCode).trim(); + // Redsys devuelve " " (espacios) cuando NO hay código de autorización. + // Eso lo consideramos "sin ID" → null, para no chocar con el índice único. + if (!trimmed.isEmpty()) { + gatewayTxId = trimmed; + } + } + // MySQL permite múltiples NULL en un índice UNIQUE, así que es seguro. + tx.setGatewayTransactionId(gatewayTxId); + tx.setGatewayResponseCode(notif.response); + tx.setResponsePayload(om.writeValueAsString(notif.raw)); + tx.setProcessedAt(LocalDateTime.now()); + txRepo.save(tx); + + if (authorized) { + p.setAuthorizationCode(tx.getGatewayTransactionId()); + p.setStatus(PaymentStatus.captured); + p.setAmountCapturedCents(p.getAmountCapturedCents() + notif.amountCents); + p.setAuthorizedAt(LocalDateTime.now()); + p.setCapturedAt(LocalDateTime.now()); + } else { + p.setStatus(PaymentStatus.failed); + p.setFailedAt(LocalDateTime.now()); + } + + if (authorized) { + processOrder(notif.cartId); + } + + payRepo.save(p); + + if (!authorized) { + ev.setLastError("Payment declined (Ds_Response=" + notif.response + ")"); + } + + ev.setProcessed(true); + ev.setProcessedAt(LocalDateTime.now()); + webhookEventRepo.save(ev); + } catch (Exception e) { + ev.setProcessed(false); + ev.setLastError(e.getMessage()); + ev.setProcessedAt(null); + webhookEventRepo.save(ev); + throw e; // aquí sí, porque queremos que si falla lógica de negocio el caller se entere + } + } + + // ---- refundViaRedsys + // ---- + @Transactional + public void refundViaRedsys(Long paymentId, long amountCents, String idempotencyKey) { + Payment p = payRepo.findById(paymentId) + .orElseThrow(() -> new IllegalArgumentException("Payment no encontrado")); + + if (amountCents <= 0) + throw new IllegalArgumentException("Importe inválido"); + + long maxRefundable = p.getAmountCapturedCents() - p.getAmountRefundedCents(); + if (amountCents > maxRefundable) + throw new IllegalStateException("Importe de devolución supera lo capturado"); + + txRepo.findByIdempotencyKey(idempotencyKey) + .ifPresent(t -> { + throw new IllegalStateException("Reembolso ya procesado"); + }); + + Refund r = new Refund(); + r.setPayment(p); + r.setAmountCents(amountCents); + r.setStatus(RefundStatus.pending); + r.setRequestedAt(LocalDateTime.now()); + r = refundRepo.save(r); + + String gatewayRefundId; + try { + // ⚠️ Usa aquí el mismo valor que mandaste en Ds_Merchant_Order al cobrar + // por ejemplo, p.getGatewayOrderId() o similar + String originalOrder = p.getGatewayOrderId(); // ajusta al nombre real del campo + gatewayRefundId = redsysService.requestRefund(originalOrder, amountCents); + } catch (Exception e) { + r.setStatus(RefundStatus.failed); + r.setProcessedAt(LocalDateTime.now()); + refundRepo.save(r); + throw new IllegalStateException("Error al solicitar la devolución a Redsys", e); + } + + PaymentTransaction tx = new PaymentTransaction(); + tx.setPayment(p); + tx.setType(PaymentTransactionType.REFUND); + tx.setStatus(PaymentTransactionStatus.succeeded); + tx.setAmountCents(amountCents); + tx.setCurrency(p.getCurrency()); + tx.setGatewayTransactionId(gatewayRefundId); + tx.setIdempotencyKey(idempotencyKey); + tx.setProcessedAt(LocalDateTime.now()); + txRepo.save(tx); + + r.setStatus(RefundStatus.succeeded); + r.setTransaction(tx); + r.setGatewayRefundId(gatewayRefundId); + r.setProcessedAt(LocalDateTime.now()); + refundRepo.save(r); + + p.setAmountRefundedCents(p.getAmountRefundedCents() + amountCents); + if (p.getAmountRefundedCents().equals(p.getAmountCapturedCents())) { + p.setStatus(PaymentStatus.refunded); + } else { + p.setStatus(PaymentStatus.partially_refunded); + } + payRepo.save(p); + } + + @Transactional + public Payment createBankTransferPayment(Long cartId, long amountCents, String currency) { + Payment p = new Payment(); + p.setOrderId(null); + + Cart cart = this.cartService.findById(cartId); + if (cart != null && cart.getUserId() != null) { + p.setUserId(cart.getUserId()); + // En el orderId de la transferencia pendiente guardamos el ID del carrito + p.setOrderId(cartId); + // Se bloquea el carrito para evitar modificaciones mientras se procesa el pago + this.cartService.lockCartById(cartId); + } + + p.setCurrency(currency); + p.setAmountTotalCents(amountCents); + p.setGateway("bank_transfer"); + p.setStatus(PaymentStatus.requires_action); // pendiente de ingreso + p = payRepo.save(p); + + // Crear transacción pendiente + PaymentTransaction tx = new PaymentTransaction(); + tx.setPayment(p); + tx.setType(PaymentTransactionType.CAPTURE); // o AUTH si prefieres + tx.setStatus(PaymentTransactionStatus.pending); + tx.setAmountCents(amountCents); + tx.setCurrency(currency); + // tx.setProcessedAt(null); // la dejas nula hasta que se confirme + txRepo.save(tx); + + return p; + } + + @Transactional + public void markBankTransferAsCaptured(Long paymentId) { + Payment p = payRepo.findById(paymentId) + .orElseThrow(() -> new IllegalArgumentException("Payment no encontrado: " + paymentId)); + + if (!"bank_transfer".equals(p.getGateway())) { + throw new IllegalStateException("El Payment " + paymentId + " no es de tipo bank_transfer"); + } + + // Idempotencia simple: si ya está capturado no hacemos nada + if (p.getStatus() == PaymentStatus.captured + || p.getStatus() == PaymentStatus.partially_refunded + || p.getStatus() == PaymentStatus.refunded) { + return; + } + + // 1) Buscar la transacción pendiente de captura + PaymentTransaction tx = txRepo + .findFirstByPaymentIdAndTypeAndStatusOrderByIdDesc( + paymentId, + PaymentTransactionType.CAPTURE, + PaymentTransactionStatus.pending) + .orElseThrow(() -> new IllegalStateException( + "No se ha encontrado transacción PENDING para la transferencia " + paymentId)); + + // 2) Actualizarla a SUCCEEDED y rellenar processedAt + tx.setStatus(PaymentTransactionStatus.succeeded); + tx.setProcessedAt(LocalDateTime.now()); + txRepo.save(tx); + + // 3) Actualizar el Payment + p.setAmountCapturedCents(p.getAmountTotalCents()); + p.setCapturedAt(LocalDateTime.now()); + p.setStatus(PaymentStatus.captured); + payRepo.save(p); + + // 4) Procesar el pedido asociado al carrito (si existe) + if (p.getOrderId() != null) { + processOrder(p.getOrderId()); + } + } + + /** + * Devuelve (total o parcialmente) un pago hecho por transferencia bancaria. + * - Solo permite gateway = "bank_transfer". + * - Crea un Refund + PaymentTransaction de tipo REFUND. + * - Actualiza amountRefundedCents y el estado del Payment. + */ + @Transactional + public Refund refundBankTransfer(Long paymentId, long amountCents) { + Payment p = payRepo.findById(paymentId) + .orElseThrow(() -> new IllegalArgumentException("Payment no encontrado: " + paymentId)); + + if (!"bank_transfer".equals(p.getGateway())) { + throw new IllegalStateException("El Payment " + paymentId + " no es de tipo bank_transfer"); + } + + if (amountCents <= 0) { + throw new IllegalArgumentException("El importe de devolución debe ser > 0"); + } + + // Solo tiene sentido devolver si está capturado o ya parcialmente devuelto + if (p.getStatus() != PaymentStatus.captured + && p.getStatus() != PaymentStatus.partially_refunded) { + throw new IllegalStateException( + "El Payment " + paymentId + " no está capturado; estado actual: " + p.getStatus()); + } + + long maxRefundable = p.getAmountCapturedCents() - p.getAmountRefundedCents(); + if (amountCents > maxRefundable) { + throw new IllegalStateException( + "Importe de devolución supera lo todavía reembolsable. " + + "maxRefundable=" + maxRefundable + " requested=" + amountCents); + } + + LocalDateTime now = LocalDateTime.now(); + + // 1) Crear Refund (para transferencias lo marcamos como SUCCEEDED directamente) + Refund refund = new Refund(); + refund.setPayment(p); + refund.setAmountCents(amountCents); + // reason usa el valor por defecto (customer_request); si quieres otro, cámbialo + // aquí + refund.setStatus(RefundStatus.succeeded); + refund.setRequestedAt(now); + refund.setProcessedAt(now); + // requestedByUserId, notes, metadata -> opcionales, déjalos en null si no los + // usas + refund = refundRepo.save(refund); + + // 2) Crear transacción de tipo REFUND + PaymentTransaction tx = new PaymentTransaction(); + tx.setPayment(p); + tx.setType(PaymentTransactionType.REFUND); + tx.setStatus(PaymentTransactionStatus.succeeded); + tx.setAmountCents(amountCents); + tx.setCurrency(p.getCurrency()); + tx.setProcessedAt(now); + // gatewayTransactionId lo dejamos null → el índice UNIQUE permite múltiples + // NULL + tx = txRepo.save(tx); + + // Vincular el Refund con la transacción + refund.setTransaction(tx); + refundRepo.save(refund); + + // 3) Actualizar Payment: total devuelto y estado + p.setAmountRefundedCents(p.getAmountRefundedCents() + amountCents); + + if (p.getAmountRefundedCents().equals(p.getAmountCapturedCents())) { + p.setStatus(PaymentStatus.refunded); + } else { + p.setStatus(PaymentStatus.partially_refunded); + } + + payRepo.save(p); + + return refund; + } + + private boolean isRedsysAuthorized(RedsysService.RedsysNotification notif) { + if (notif.response == null) { + return false; + } + String r = notif.response.trim(); + // Si no es numérico, lo tratamos como no autorizado + if (!r.matches("\\d+")) { + return false; + } + int code = Integer.parseInt(r); + // Redsys: 0–99 → autorizado; >=100 → denegado / error + return code >= 0 && code <= 99; + } + + private Boolean processOrder(Long cartId) { + // GENERAR PEDIDO A PARTIR DEL CARRITO + Cart cart = this.cartService.findById(cartId); + if (cart != null) { + // Bloqueamos el carrito + this.cartService.lockCartById(cart.getId()); + // order ID es generado dentro de createOrderFromCart donde se marcan los + // presupuestos como no editables + // Long orderId = + // this.cartService.pedidoService.createOrderFromCart(cart.getId(), p.getId()); + // p.setOrderId(orderId); + + } + return true; + } + +} diff --git a/src/main/java/com/imprimelibros/erp/payments/model/CaptureMethod.java b/src/main/java/com/imprimelibros/erp/payments/model/CaptureMethod.java new file mode 100644 index 0000000..2d9c53e --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/CaptureMethod.java @@ -0,0 +1,5 @@ +package com.imprimelibros.erp.payments.model; + + +public enum CaptureMethod { automatic, manual } + diff --git a/src/main/java/com/imprimelibros/erp/payments/model/Payment.java b/src/main/java/com/imprimelibros/erp/payments/model/Payment.java new file mode 100644 index 0000000..5ca95b9 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/Payment.java @@ -0,0 +1,173 @@ +package com.imprimelibros.erp.payments.model; + +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table(name = "payments") +public class Payment { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "order_id") + private Long orderId; + + @Column(name = "user_id") + private Long userId; + + @Column(nullable = false, length = 3) + private String currency; + + @Column(name = "amount_total_cents", nullable = false) + private Long amountTotalCents; + + @Column(name = "amount_captured_cents", nullable = false) + private Long amountCapturedCents = 0L; + + @Column(name = "amount_refunded_cents", nullable = false) + private Long amountRefundedCents = 0L; + + @Enumerated(EnumType.STRING) + @Column(nullable = false, length = 32) + private PaymentStatus status = PaymentStatus.requires_payment_method; + + @Enumerated(EnumType.STRING) + @Column(name = "capture_method", nullable = false, length = 16) + private CaptureMethod captureMethod = CaptureMethod.automatic; + + @Column(nullable = false, length = 32) + private String gateway; + + @Column(name = "gateway_payment_id", length = 128) + private String gatewayPaymentId; + + @Column(name = "gateway_order_id", length = 12) + private String gatewayOrderId; + + @Column(name = "authorization_code", length = 32) + private String authorizationCode; + + @Enumerated(EnumType.STRING) + @Column(name = "three_ds_status", nullable = false, length = 32) + private ThreeDSStatus threeDsStatus = ThreeDSStatus.not_applicable; + + @Column(length = 22) + private String descriptor; + + @Lob + @Column(name = "client_ip", columnDefinition = "varbinary(16)") + private byte[] clientIp; + + @Column(name = "authorized_at") + private LocalDateTime authorizedAt; + + @Column(name = "captured_at") + private LocalDateTime capturedAt; + + @Column(name = "canceled_at") + private LocalDateTime canceledAt; + + @Column(name = "failed_at") + private LocalDateTime failedAt; + + @Column(columnDefinition = "json") + private String metadata; + + @Column(name = "created_at", nullable = false, + columnDefinition = "datetime default current_timestamp") + private LocalDateTime createdAt; + + @Column(name = "updated_at", nullable = false, + columnDefinition = "datetime default current_timestamp on update current_timestamp") + private LocalDateTime updatedAt; + + public Payment() {} + + // Getters y setters ↓ (los típicos) + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + + public Long getOrderId() { return orderId; } + public void setOrderId(Long orderId) { this.orderId = orderId; } + + public Long getUserId() { return userId; } + public void setUserId(Long userId) { this.userId = userId; } + + public String getCurrency() { return currency; } + public void setCurrency(String currency) { this.currency = currency; } + + public Long getAmountTotalCents() { return amountTotalCents; } + public void setAmountTotalCents(Long amountTotalCents) { this.amountTotalCents = amountTotalCents; } + + public Long getAmountCapturedCents() { return amountCapturedCents; } + public void setAmountCapturedCents(Long amountCapturedCents) { this.amountCapturedCents = amountCapturedCents; } + + public Long getAmountRefundedCents() { return amountRefundedCents; } + public void setAmountRefundedCents(Long amountRefundedCents) { this.amountRefundedCents = amountRefundedCents; } + + public PaymentStatus getStatus() { return status; } + public void setStatus(PaymentStatus status) { this.status = status; } + + public CaptureMethod getCaptureMethod() { return captureMethod; } + public void setCaptureMethod(CaptureMethod captureMethod) { this.captureMethod = captureMethod; } + + public String getGateway() { return gateway; } + public void setGateway(String gateway) { this.gateway = gateway; } + + public String getGatewayPaymentId() { return gatewayPaymentId; } + public void setGatewayPaymentId(String gatewayPaymentId) { this.gatewayPaymentId = gatewayPaymentId; } + + public String getGatewayOrderId() { return gatewayOrderId; } + public void setGatewayOrderId(String gatewayOrderId) { this.gatewayOrderId = gatewayOrderId; } + + public String getAuthorizationCode() { return authorizationCode; } + public void setAuthorizationCode(String authorizationCode) { this.authorizationCode = authorizationCode; } + + public ThreeDSStatus getThreeDsStatus() { return threeDsStatus; } + public void setThreeDsStatus(ThreeDSStatus threeDsStatus) { this.threeDsStatus = threeDsStatus; } + + public String getDescriptor() { return descriptor; } + public void setDescriptor(String descriptor) { this.descriptor = descriptor; } + + public byte[] getClientIp() { return clientIp; } + public void setClientIp(byte[] clientIp) { this.clientIp = clientIp; } + + public LocalDateTime getAuthorizedAt() { return authorizedAt; } + public void setAuthorizedAt(LocalDateTime authorizedAt) { this.authorizedAt = authorizedAt; } + + public LocalDateTime getCapturedAt() { return capturedAt; } + public void setCapturedAt(LocalDateTime capturedAt) { this.capturedAt = capturedAt; } + + public LocalDateTime getCanceledAt() { return canceledAt; } + public void setCanceledAt(LocalDateTime canceledAt) { this.canceledAt = canceledAt; } + + public LocalDateTime getFailedAt() { return failedAt; } + public void setFailedAt(LocalDateTime failedAt) { this.failedAt = failedAt; } + + public String getMetadata() { return metadata; } + public void setMetadata(String metadata) { this.metadata = metadata; } + + public LocalDateTime getCreatedAt() { return createdAt; } + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } + + public LocalDateTime getUpdatedAt() { return updatedAt; } + public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; } + + @PrePersist + public void prePersist() { + LocalDateTime now = LocalDateTime.now(); + if (createdAt == null) { + createdAt = now; + } + if (updatedAt == null) { + updatedAt = now; + } + } + + @PreUpdate + public void preUpdate() { + updatedAt = LocalDateTime.now(); + } +} diff --git a/src/main/java/com/imprimelibros/erp/payments/model/PaymentStatus.java b/src/main/java/com/imprimelibros/erp/payments/model/PaymentStatus.java new file mode 100644 index 0000000..661660f --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/PaymentStatus.java @@ -0,0 +1,8 @@ +package com.imprimelibros.erp.payments.model; + +public enum PaymentStatus { + requires_payment_method, requires_action, authorized, + captured, partially_refunded, refunded, canceled, failed +} + + diff --git a/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransaction.java b/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransaction.java new file mode 100644 index 0000000..f8ec70c --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransaction.java @@ -0,0 +1,132 @@ +package com.imprimelibros.erp.payments.model; + +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table( + name = "payment_transactions", + uniqueConstraints = { + @UniqueConstraint(name = "uq_tx_gateway_txid", columnNames = {"gateway_transaction_id"}) + }, + indexes = { + @Index(name = "idx_tx_pay", columnList = "payment_id"), + @Index(name = "idx_tx_type_status", columnList = "type,status"), + @Index(name = "idx_tx_idem", columnList = "idempotency_key") + } +) +public class PaymentTransaction { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JoinColumn(name = "payment_id", nullable = false) + private Payment payment; + + @Enumerated(EnumType.STRING) + @Column(name = "type", nullable = false, length = 16) + private PaymentTransactionType type; + + @Enumerated(EnumType.STRING) + @Column(name = "status", nullable = false, length = 16) + private PaymentTransactionStatus status; + + @Column(name = "amount_cents", nullable = false) + private Long amountCents; + + @Column(name = "currency", nullable = false, length = 3) + private String currency; + + @Column(name = "gateway_transaction_id", length = 128) + private String gatewayTransactionId; + + @Column(name = "gateway_response_code", length = 64) + private String gatewayResponseCode; + + @Column(name = "avs_result", length = 8) + private String avsResult; + + @Column(name = "cvv_result", length = 8) + private String cvvResult; + + @Column(name = "three_ds_version", length = 16) + private String threeDsVersion; + + @Column(name = "idempotency_key", length = 128) + private String idempotencyKey; + + @Column(name = "request_payload", columnDefinition = "json") + private String requestPayload; + + @Column(name = "response_payload", columnDefinition = "json") + private String responsePayload; + + @Column(name = "processed_at") + private LocalDateTime processedAt; + + @Column(name = "created_at", nullable = false, + columnDefinition = "datetime default current_timestamp") + private LocalDateTime createdAt; + + public PaymentTransaction() {} + + // Getters & Setters + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + + public Payment getPayment() { return payment; } + public void setPayment(Payment payment) { this.payment = payment; } + + public PaymentTransactionType getType() { return type; } + public void setType(PaymentTransactionType type) { this.type = type; } + + public PaymentTransactionStatus getStatus() { return status; } + public void setStatus(PaymentTransactionStatus status) { this.status = status; } + + public Long getAmountCents() { return amountCents; } + public void setAmountCents(Long amountCents) { this.amountCents = amountCents; } + + public String getCurrency() { return currency; } + public void setCurrency(String currency) { this.currency = currency; } + + public String getGatewayTransactionId() { return gatewayTransactionId; } + public void setGatewayTransactionId(String gatewayTransactionId) { this.gatewayTransactionId = gatewayTransactionId; } + + public String getGatewayResponseCode() { return gatewayResponseCode; } + public void setGatewayResponseCode(String gatewayResponseCode) { this.gatewayResponseCode = gatewayResponseCode; } + + public String getAvsResult() { return avsResult; } + public void setAvsResult(String avsResult) { this.avsResult = avsResult; } + + public String getCvvResult() { return cvvResult; } + public void setCvvResult(String cvvResult) { this.cvvResult = cvvResult; } + + public String getThreeDsVersion() { return threeDsVersion; } + public void setThreeDsVersion(String threeDsVersion) { this.threeDsVersion = threeDsVersion; } + + public String getIdempotencyKey() { return idempotencyKey; } + public void setIdempotencyKey(String idempotencyKey) { this.idempotencyKey = idempotencyKey; } + + public String getRequestPayload() { return requestPayload; } + public void setRequestPayload(String requestPayload) { this.requestPayload = requestPayload; } + + public String getResponsePayload() { return responsePayload; } + public void setResponsePayload(String responsePayload) { this.responsePayload = responsePayload; } + + public LocalDateTime getProcessedAt() { return processedAt; } + public void setProcessedAt(LocalDateTime processedAt) { this.processedAt = processedAt; } + + public LocalDateTime getCreatedAt() { return createdAt; } + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } + + @PrePersist + public void prePersist() { + LocalDateTime now = LocalDateTime.now(); + if (createdAt == null) { + createdAt = now; + } + } + +} diff --git a/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransactionStatus.java b/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransactionStatus.java new file mode 100644 index 0000000..5ff279b --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransactionStatus.java @@ -0,0 +1,4 @@ +package com.imprimelibros.erp.payments.model; + +public enum PaymentTransactionStatus { pending, succeeded, failed } + diff --git a/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransactionType.java b/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransactionType.java new file mode 100644 index 0000000..880654a --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/PaymentTransactionType.java @@ -0,0 +1,4 @@ +package com.imprimelibros.erp.payments.model; + +public enum PaymentTransactionType { AUTH, CAPTURE, REFUND, VOID } + diff --git a/src/main/java/com/imprimelibros/erp/payments/model/Refund.java b/src/main/java/com/imprimelibros/erp/payments/model/Refund.java new file mode 100644 index 0000000..06a4516 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/Refund.java @@ -0,0 +1,99 @@ +package com.imprimelibros.erp.payments.model; + +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table( + name = "refunds", + uniqueConstraints = { + @UniqueConstraint(name = "uq_refund_gateway_id", columnNames = {"gateway_refund_id"}) + }, + indexes = { + @Index(name = "idx_ref_pay", columnList = "payment_id"), + @Index(name = "idx_ref_status", columnList = "status") + } +) +public class Refund { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JoinColumn(name = "payment_id", nullable = false) + private Payment payment; + + @OneToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "transaction_id") + private PaymentTransaction transaction; // el REFUND en payment_transactions + + @Column(name = "amount_cents", nullable = false) + private Long amountCents; + + @Enumerated(EnumType.STRING) + @Column(name = "reason", nullable = false, length = 32) + private RefundReason reason = RefundReason.customer_request; + + @Enumerated(EnumType.STRING) + @Column(name = "status", nullable = false, length = 16) + private RefundStatus status = RefundStatus.pending; + + @Column(name = "requested_by_user_id") + private Long requestedByUserId; + + @Column(name = "requested_at", nullable = false, + columnDefinition = "datetime default current_timestamp") + private LocalDateTime requestedAt; + + @Column(name = "processed_at") + private LocalDateTime processedAt; + + @Column(name = "gateway_refund_id", length = 128) + private String gatewayRefundId; + + @Column(name = "notes", length = 500) + private String notes; + + @Column(name = "metadata", columnDefinition = "json") + private String metadata; + + public Refund() {} + + // Getters & Setters + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + + public Payment getPayment() { return payment; } + public void setPayment(Payment payment) { this.payment = payment; } + + public PaymentTransaction getTransaction() { return transaction; } + public void setTransaction(PaymentTransaction transaction) { this.transaction = transaction; } + + public Long getAmountCents() { return amountCents; } + public void setAmountCents(Long amountCents) { this.amountCents = amountCents; } + + public RefundReason getReason() { return reason; } + public void setReason(RefundReason reason) { this.reason = reason; } + + public RefundStatus getStatus() { return status; } + public void setStatus(RefundStatus status) { this.status = status; } + + public Long getRequestedByUserId() { return requestedByUserId; } + public void setRequestedByUserId(Long requestedByUserId) { this.requestedByUserId = requestedByUserId; } + + public LocalDateTime getRequestedAt() { return requestedAt; } + public void setRequestedAt(LocalDateTime requestedAt) { this.requestedAt = requestedAt; } + + public LocalDateTime getProcessedAt() { return processedAt; } + public void setProcessedAt(LocalDateTime processedAt) { this.processedAt = processedAt; } + + public String getGatewayRefundId() { return gatewayRefundId; } + public void setGatewayRefundId(String gatewayRefundId) { this.gatewayRefundId = gatewayRefundId; } + + public String getNotes() { return notes; } + public void setNotes(String notes) { this.notes = notes; } + + public String getMetadata() { return metadata; } + public void setMetadata(String metadata) { this.metadata = metadata; } +} diff --git a/src/main/java/com/imprimelibros/erp/payments/model/RefundReason.java b/src/main/java/com/imprimelibros/erp/payments/model/RefundReason.java new file mode 100644 index 0000000..432e146 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/RefundReason.java @@ -0,0 +1,6 @@ +package com.imprimelibros.erp.payments.model; + +public enum RefundReason { + customer_request, partial_return, pricing_adjustment, duplicate, fraud, other +} + diff --git a/src/main/java/com/imprimelibros/erp/payments/model/RefundStatus.java b/src/main/java/com/imprimelibros/erp/payments/model/RefundStatus.java new file mode 100644 index 0000000..d7e6f79 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/RefundStatus.java @@ -0,0 +1,4 @@ +package com.imprimelibros.erp.payments.model; + +public enum RefundStatus { pending, succeeded, failed, canceled } + diff --git a/src/main/java/com/imprimelibros/erp/payments/model/ThreeDSStatus.java b/src/main/java/com/imprimelibros/erp/payments/model/ThreeDSStatus.java new file mode 100644 index 0000000..1af1879 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/ThreeDSStatus.java @@ -0,0 +1,4 @@ +package com.imprimelibros.erp.payments.model; + +public enum ThreeDSStatus { not_applicable, attempted, challenge, succeeded, failed } + diff --git a/src/main/java/com/imprimelibros/erp/payments/model/WebhookEvent.java b/src/main/java/com/imprimelibros/erp/payments/model/WebhookEvent.java new file mode 100644 index 0000000..7dd8f0a --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/model/WebhookEvent.java @@ -0,0 +1,96 @@ +package com.imprimelibros.erp.payments.model; + +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table( + name = "webhook_events", + uniqueConstraints = { + @UniqueConstraint(name = "uq_webhook_provider_event", columnNames = {"provider","event_id"}) + }, + indexes = { + @Index(name = "idx_webhook_processed", columnList = "processed") + } +) +public class WebhookEvent { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "provider", nullable = false, length = 32) + private String provider; // "redsys", etc. + + @Column(name = "event_type", nullable = false, length = 64) + private String eventType; + + @Column(name = "event_id", length = 128) + private String eventId; + + @Column(name = "signature", length = 512) + private String signature; + + @Column(name = "payload", nullable = false, columnDefinition = "json") + private String payload; + + @Column(name = "processed", nullable = false) + private Boolean processed = false; + + @Column(name = "processed_at") + private LocalDateTime processedAt; + + @Column(name = "attempts", nullable = false) + private Integer attempts = 0; + + @Column(name = "last_error", length = 500) + private String lastError; + + @Column(name = "created_at", nullable = false, + columnDefinition = "datetime default current_timestamp") + private LocalDateTime createdAt; + + public WebhookEvent() {} + + // Getters & Setters + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + + public String getProvider() { return provider; } + public void setProvider(String provider) { this.provider = provider; } + + public String getEventType() { return eventType; } + public void setEventType(String eventType) { this.eventType = eventType; } + + public String getEventId() { return eventId; } + public void setEventId(String eventId) { this.eventId = eventId; } + + public String getSignature() { return signature; } + public void setSignature(String signature) { this.signature = signature; } + + public String getPayload() { return payload; } + public void setPayload(String payload) { this.payload = payload; } + + public Boolean getProcessed() { return processed; } + public void setProcessed(Boolean processed) { this.processed = processed; } + + public LocalDateTime getProcessedAt() { return processedAt; } + public void setProcessedAt(LocalDateTime processedAt) { this.processedAt = processedAt; } + + public Integer getAttempts() { return attempts; } + public void setAttempts(Integer attempts) { this.attempts = attempts; } + + public String getLastError() { return lastError; } + public void setLastError(String lastError) { this.lastError = lastError; } + + public LocalDateTime getCreatedAt() { return createdAt; } + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } + + @PrePersist + public void prePersist() { + LocalDateTime now = LocalDateTime.now(); + if (createdAt == null) { + createdAt = now; + } + } +} diff --git a/src/main/java/com/imprimelibros/erp/payments/repo/PaymentRepository.java b/src/main/java/com/imprimelibros/erp/payments/repo/PaymentRepository.java new file mode 100644 index 0000000..6af17f7 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/repo/PaymentRepository.java @@ -0,0 +1,11 @@ +// PaymentRepository.java +package com.imprimelibros.erp.payments.repo; + +import com.imprimelibros.erp.payments.model.Payment; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface PaymentRepository extends JpaRepository { + Optional findByGatewayAndGatewayOrderId(String gateway, String gatewayOrderId); +} diff --git a/src/main/java/com/imprimelibros/erp/payments/repo/PaymentTransactionRepository.java b/src/main/java/com/imprimelibros/erp/payments/repo/PaymentTransactionRepository.java new file mode 100644 index 0000000..e0eb955 --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/repo/PaymentTransactionRepository.java @@ -0,0 +1,21 @@ +// PaymentTransactionRepository.java +package com.imprimelibros.erp.payments.repo; + +import com.imprimelibros.erp.payments.model.PaymentTransaction; +import com.imprimelibros.erp.payments.model.PaymentTransactionStatus; +import com.imprimelibros.erp.payments.model.PaymentTransactionType; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +import java.util.Optional; + +public interface PaymentTransactionRepository extends JpaRepository, JpaSpecificationExecutor { + Optional findByGatewayTransactionId(String gatewayTransactionId); + Optional findByIdempotencyKey(String idempotencyKey); + Optional findFirstByPaymentIdAndTypeAndStatusOrderByIdDesc( + Long paymentId, + PaymentTransactionType type, + PaymentTransactionStatus status + ); +} diff --git a/src/main/java/com/imprimelibros/erp/payments/repo/RefundRepository.java b/src/main/java/com/imprimelibros/erp/payments/repo/RefundRepository.java new file mode 100644 index 0000000..57c6d4c --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/repo/RefundRepository.java @@ -0,0 +1,12 @@ +// RefundRepository.java +package com.imprimelibros.erp.payments.repo; + +import com.imprimelibros.erp.payments.model.Refund; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +public interface RefundRepository extends JpaRepository { + @Query("select coalesce(sum(r.amountCents),0) from Refund r where r.payment.id = :paymentId and r.status = com.imprimelibros.erp.payments.model.RefundStatus.succeeded") + long sumSucceededByPaymentId(@Param("paymentId") Long paymentId); +} diff --git a/src/main/java/com/imprimelibros/erp/payments/repo/WebhookEventRepository.java b/src/main/java/com/imprimelibros/erp/payments/repo/WebhookEventRepository.java new file mode 100644 index 0000000..c70070b --- /dev/null +++ b/src/main/java/com/imprimelibros/erp/payments/repo/WebhookEventRepository.java @@ -0,0 +1,12 @@ +// WebhookEventRepository.java +package com.imprimelibros.erp.payments.repo; + +import com.imprimelibros.erp.payments.model.WebhookEvent; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface WebhookEventRepository extends JpaRepository { + + Optional findByProviderAndEventId(String provider, String eventId); +} diff --git a/src/main/java/com/imprimelibros/erp/redsys/RedsysController.java b/src/main/java/com/imprimelibros/erp/redsys/RedsysController.java index 921b224..255b366 100644 --- a/src/main/java/com/imprimelibros/erp/redsys/RedsysController.java +++ b/src/main/java/com/imprimelibros/erp/redsys/RedsysController.java @@ -1,83 +1,171 @@ package com.imprimelibros.erp.redsys; +import com.imprimelibros.erp.payments.PaymentService; +import com.imprimelibros.erp.payments.model.Payment; +import com.imprimelibros.erp.redsys.RedsysService.FormPayload; +import org.springframework.context.MessageSource; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import java.nio.charset.StandardCharsets; +import java.util.Locale; +import java.util.UUID; @Controller @RequestMapping("/pagos/redsys") public class RedsysController { - private final RedsysService service; + private final PaymentService paymentService; + private final MessageSource messageSource; - public RedsysController(RedsysService service) { - this.service = service; + public RedsysController(PaymentService paymentService, MessageSource messageSource) { + this.paymentService = paymentService; + this.messageSource = messageSource; } - @PostMapping("/crear") - public String crearPago(@RequestParam String order, - @RequestParam long amountCents, - Model model) throws Exception { - - var req = new RedsysService.PaymentRequest(order, amountCents, "Compra en ImprimeLibros"); - var form = service.buildRedirectForm(req); - model.addAttribute("action", form.action()); - model.addAttribute("signatureVersion", form.signatureVersion()); - model.addAttribute("merchantParameters", form.merchantParameters()); - model.addAttribute("signature", form.signature()); - return "imprimelibros/payments/redsys-redirect"; - } - - @PostMapping("/notify") + @PostMapping(value = "/crear", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) @ResponseBody - public ResponseEntity notifyRedsys( - @RequestParam("Ds_Signature") String dsSignature, - @RequestParam("Ds_MerchantParameters") String dsMerchantParameters) { + public ResponseEntity crearPago(@RequestParam("amountCents") Long amountCents, + @RequestParam("method") String method, @RequestParam("cartId") Long cartId) throws Exception { + if ("bank-transfer".equalsIgnoreCase(method)) { + // 1) Creamos el Payment interno SIN orderId (null) + Payment p = paymentService.createBankTransferPayment(cartId, amountCents, "EUR"); + + // 2) Mostramos instrucciones de transferencia + String html = """ + Pago por transferencia + +

Pago por transferencia bancaria

+

Hemos registrado tu intención de pedido.

+

Importe: %s €

+

IBAN: ES00 1234 5678 9012 3456 7890

+

Concepto: TRANSF-%d

+

En cuanto recibamos la transferencia, procesaremos tu pedido.

+

Volver al resumen

+ + """.formatted( + String.format("%.2f", amountCents / 100.0), + p.getId() // usamos el ID del Payment como referencia + ); + + byte[] body = html.getBytes(StandardCharsets.UTF_8); + return ResponseEntity.ok() + .contentType(MediaType.TEXT_HTML) + .body(body); + } + + // Tarjeta o Bizum (Redsys) + FormPayload form = paymentService.createRedsysPayment(cartId, amountCents, "EUR", method); + + String html = """ + Redirigiendo a Redsys… + +
+ + + + + +
+ + """.formatted( + form.action(), + form.signatureVersion(), + form.merchantParameters(), + form.signature(), cartId); + + byte[] body = html.getBytes(StandardCharsets.UTF_8); + return ResponseEntity.ok() + .contentType(MediaType.TEXT_HTML) + .body(body); + } + + // GET: cuando el usuario cae aquí sin parámetros, o Redsys redirige por GET + @GetMapping("/ok") + public String okGet(RedirectAttributes redirectAttrs, Model model, Locale locale) { + String msg = messageSource.getMessage("checkout.success.payment", null, "Pago realizado con éxito. Gracias por su compra.", locale); + model.addAttribute("successPago", msg); + redirectAttrs.addFlashAttribute("successPago", msg); + return "redirect:/cart"; + } + + // POST: si Redsys envía Ds_Signature y Ds_MerchantParameters (muchas + // integraciones ni lo usan) + @PostMapping(value = "/ok", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ResponseBody + public ResponseEntity okPost(@RequestParam("Ds_Signature") String signature, + @RequestParam("Ds_MerchantParameters") String merchantParameters) { try { - RedsysService.RedsysNotification notif = service.validateAndParseNotification(dsSignature, - dsMerchantParameters); - - // 1) Idempotencia: comprueba si el pedido ya fue procesado - // 2) Valida que importe/moneda/pedido coincidan con lo que esperabas - // 3) Marca como pagado si notif.authorized() == true - - return ResponseEntity.ok("OK"); // Redsys espera "OK" - } catch (SecurityException se) { - // Firma incorrecta: NO procesar - return ResponseEntity.status(400).body("BAD SIGNATURE"); + // opcional: idempotente, si /notify ya ha hecho el trabajo no pasa nada + paymentService.handleRedsysNotification(signature, merchantParameters); + return ResponseEntity.ok("

Pago realizado correctamente

Volver"); } catch (Exception e) { - return ResponseEntity.status(500).body("ERROR"); + return ResponseEntity.badRequest() + .body("

Error validando pago

" + e.getMessage() + "
"); } } - @PostMapping("/ok") - public String okReturn(@RequestParam("Ds_Signature") String dsSignature, - @RequestParam("Ds_MerchantParameters") String dsMerchantParameters, - Model model) { + @GetMapping("/ko") + public String koGet(RedirectAttributes redirectAttrs, Model model, Locale locale) { + + String msg = messageSource.getMessage("checkout.error.payment", null, "Error al procesar el pago: el pago ha sido cancelado o rechazado Por favor, inténtelo de nuevo.", locale); + model.addAttribute("errorPago", msg); + redirectAttrs.addFlashAttribute("errorPago", msg); + return "redirect:/cart"; + } + + @PostMapping(value = "/ko", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ResponseBody + public ResponseEntity koPost( + @RequestParam("Ds_Signature") String signature, + @RequestParam("Ds_MerchantParameters") String merchantParameters) { + try { - RedsysService.RedsysNotification notif = service.validateAndParseNotification(dsSignature, dsMerchantParameters); - // Aquí puedes validar importe/pedido/moneda con tu base de datos y marcar como - // pagado - model.addAttribute("authorized", notif.authorized()); - //model.addAttribute("order", notif.order()); - //model.addAttribute("amountCents", notif.amountCents()); - return "imprimelibros/payments/redsys-ok"; + // Procesamos la notificación IGUAL que en /ok y /notify + paymentService.handleRedsysNotification(signature, merchantParameters); + + // Mensaje para el usuario (pago cancelado/rechazado) + String html = "

Pago cancelado o rechazado

Volver"; + return ResponseEntity.ok(html); } catch (Exception e) { - model.addAttribute("error", "No se pudo validar la respuesta de Redsys."); - return "imprimelibros/payments/redsys-ko"; + // Si algo falla al validar/procesar, lo mostramos (útil en entorno de pruebas) + String html = "

Error procesando notificación KO

" + e.getMessage() + "
"; + return ResponseEntity.badRequest().body(html); } } - @PostMapping("/ko") - public String koReturn(@RequestParam(value = "Ds_Signature", required = false) String dsSignature, - @RequestParam(value = "Ds_MerchantParameters", required = false) String dsMerchantParameters, - Model model) { - // Suele venir cuando el usuario cancela o hay error - model.addAttribute("error", "Operación cancelada o rechazada."); - return "imprimelibros/payments/redsys-ko"; + @PostMapping(value = "/notify", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ResponseBody + public String notifyRedsys(@RequestParam("Ds_Signature") String signature, + @RequestParam("Ds_MerchantParameters") String merchantParameters) { + try { + paymentService.handleRedsysNotification(signature, merchantParameters); + return "OK"; + } catch (Exception e) { + e.printStackTrace(); // 👈 para ver el motivo del 500 en logs + return "ERROR"; + } } + @PostMapping(value = "/refund/{paymentId}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ResponseBody + public ResponseEntity refund(@PathVariable Long paymentId, + @RequestParam("amountCents") Long amountCents) { + try { + String idem = "refund-" + paymentId + "-" + amountCents + "-" + UUID.randomUUID(); + paymentService.refundViaRedsys(paymentId, amountCents, idem); + return ResponseEntity.ok("{success:true}"); + } catch (Exception e) { + return ResponseEntity.badRequest().body("{success:false, error: '" + e.getMessage() + "'}"); + } + } } diff --git a/src/main/java/com/imprimelibros/erp/redsys/RedsysService.java b/src/main/java/com/imprimelibros/erp/redsys/RedsysService.java index df8c484..0aa593a 100644 --- a/src/main/java/com/imprimelibros/erp/redsys/RedsysService.java +++ b/src/main/java/com/imprimelibros/erp/redsys/RedsysService.java @@ -1,13 +1,17 @@ package com.imprimelibros.erp.redsys; +import org.json.JSONObject; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; - import sis.redsys.api.ApiMacSha256; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.Base64; @@ -18,6 +22,10 @@ import java.util.Objects; public class RedsysService { // ---------- CONFIG ---------- + @Value("${redsys.url}") + private String url; + @Value("${redsys.refund.url}") + private String urlRefund; @Value("${redsys.merchant-code}") private String merchantCode; @Value("${redsys.terminal}") @@ -37,19 +45,33 @@ public class RedsysService { @Value("${redsys.environment}") private String env; + private final HttpClient httpClient = HttpClient.newHttpClient(); + // ---------- RECORDS ---------- - public record PaymentRequest(String order, long amountCents, String description) { + // Pedido a Redsys + public record PaymentRequest(String order, long amountCents, String description, Long cartId) { } + // Payload para el formulario public record FormPayload(String action, String signatureVersion, String merchantParameters, String signature) { } - // ---------- MÉTODO PRINCIPAL ---------- + // ---------- MÉTODO PRINCIPAL (TARJETA) ---------- public FormPayload buildRedirectForm(PaymentRequest req) throws Exception { + return buildRedirectFormInternal(req, false); // false = tarjeta (sin PAYMETHODS) + } + + // ---------- NUEVO: MÉTODO PARA BIZUM ---------- + public FormPayload buildRedirectFormBizum(PaymentRequest req) throws Exception { + return buildRedirectFormInternal(req, true); // true = Bizum (PAYMETHODS = z) + } + + // ---------- LÓGICA COMÚN ---------- + private FormPayload buildRedirectFormInternal(PaymentRequest req, boolean bizum) throws Exception { ApiMacSha256 api = new ApiMacSha256(); api.setParameter("DS_MERCHANT_AMOUNT", String.valueOf(req.amountCents())); - api.setParameter("DS_MERCHANT_ORDER", req.order()); // Usa 12 dígitos con ceros si puedes + api.setParameter("DS_MERCHANT_ORDER", req.order()); // Usa 12 dígitos con ceros api.setParameter("DS_MERCHANT_MERCHANTCODE", merchantCode); api.setParameter("DS_MERCHANT_CURRENCY", currency); api.setParameter("DS_MERCHANT_TRANSACTIONTYPE", txType); @@ -58,12 +80,30 @@ public class RedsysService { api.setParameter("DS_MERCHANT_URLOK", urlOk); api.setParameter("DS_MERCHANT_URLKO", urlKo); + // ✅ Añadir contexto adicional (por ejemplo, cartId) + // Si tu PaymentRequest no lo lleva todavía, puedes pasarlo en description o + // crear otro campo. + JSONObject ctx = new JSONObject(); + ctx.put("cartId", req.cartId()); // o req.cartId() si decides añadirlo al record + api.setParameter("DS_MERCHANT_MERCHANTDATA", ctx.toString()); + + if (req.description() != null && !req.description().isBlank()) { + api.setParameter("DS_MERCHANT_PRODUCTDESCRIPTION", req.description()); + } + + // 🔹 Bizum: PAYMETHODS = "z" según Redsys + if (bizum) { + api.setParameter("DS_MERCHANT_PAYMETHODS", "z"); + } + String merchantParameters = api.createMerchantParameters(); String signature = api.createMerchantSignature(secretKeyBase64); - String action = "test".equalsIgnoreCase(env) - ? "https://sis-t.redsys.es:25443/sis/realizarPago" - : "https://sis.redsys.es/sis/realizarPago"; + String action = url; + /* + * ? "https://sis-t.redsys.es:25443/sis/realizarPago" + * : "https://sis.redsys.es/sis/realizarPago"; + */ return new FormPayload(action, "HMAC_SHA256_V1", merchantParameters, signature); } @@ -84,27 +124,40 @@ public class RedsysService { // ---------- STEP 4: Validar notificación ---------- public RedsysNotification validateAndParseNotification(String dsSignature, String dsMerchantParametersB64) - throws Exception { - Map mp = decodeMerchantParametersToMap(dsMerchantParametersB64); - RedsysNotification notif = new RedsysNotification(mp); + throws Exception { - if (notif.order == null || notif.order.isBlank()) { - throw new IllegalArgumentException("Falta Ds_Order en Ds_MerchantParameters"); + ApiMacSha256 api = new ApiMacSha256(); + + // 1) Decodificar Ds_MerchantParameters usando la librería oficial + String json = api.decodeMerchantParameters(dsMerchantParametersB64); + + // 2) Convertir a Map para tu modelo + Map mp = MAPPER.readValue(json, new TypeReference<>() { + }); + RedsysNotification notif = new RedsysNotification(mp); + + if (notif.order == null || notif.order.isBlank()) { + System.out.println("### ATENCIÓN: Ds_Order no viene en MerchantParameters"); + throw new IllegalArgumentException("Falta Ds_Order en Ds_MerchantParameters"); + } + + // 3) Calcular firma esperada: clave comercio + MerchantParameters en B64 + String expected = api.createMerchantSignatureNotif( + secretKeyBase64, // 👈 La misma que usas para crear la firma del pago + dsMerchantParametersB64 // 👈 SIEMPRE el B64 tal cual llega de Redsys, sin tocar + ); + + // 4) Comparar firma Redsys vs firma calculada + if (!safeEqualsB64(dsSignature, expected)) { + System.out.println("### Firma Redsys no válida"); + System.out.println("Ds_Signature (Redsys) = " + dsSignature); + System.out.println("Expected (local) = " + expected); + throw new SecurityException("Firma Redsys no válida"); + } + + return notif; } - ApiMacSha256 api = new ApiMacSha256(); - api.setParameter("Ds_MerchantParameters", dsMerchantParametersB64); - - String expected = api.createMerchantSignatureNotif(secretKeyBase64, api.decodeMerchantParameters(dsMerchantParametersB64)); // ✅ SOLO UN PARÁMETRO - - if (!safeEqualsB64(dsSignature, expected)) { - throw new SecurityException("Firma Redsys no válida"); - } - - return notif; -} - - // ---------- HELPERS ---------- private static boolean safeEqualsB64(String a, String b) { if (Objects.equals(a, b)) @@ -141,6 +194,7 @@ public class RedsysService { public final String response; public final long amountCents; public final String currency; + public final Long cartId; public RedsysNotification(Map raw) { this.raw = raw; @@ -148,6 +202,24 @@ public class RedsysService { this.response = str(raw.get("Ds_Response")); this.currency = str(raw.get("Ds_Currency")); this.amountCents = parseLongSafe(raw.get("Ds_Amount")); + this.cartId = extractCartId(raw.get("Ds_MerchantData")); + } + + private static Long extractCartId(Object merchantDataObj) { + if (merchantDataObj == null) + return null; + try { + String json = String.valueOf(merchantDataObj); + + // 👇 DES-ESCAPAR las comillas HTML que vienen de Redsys + json = json.replace(""", "\""); + + org.json.JSONObject ctx = new org.json.JSONObject(json); + return ctx.optLong("cartId", 0L); + } catch (Exception e) { + e.printStackTrace(); // te ayudará si vuelve a fallar + return null; + } } public boolean authorized() { @@ -171,4 +243,79 @@ public class RedsysService { } } } + + /** + * Solicita a Redsys una devolución (TransactionType = 3) + * + * @param order El mismo Ds_Merchant_Order que se usó en el cobro. + * @param amountCents Importe en céntimos a devolver. + * @return gatewayRefundId (p.ej. Ds_AuthorisationCode o Ds_Order) + */ + public String requestRefund(String order, long amountCents) throws Exception { + ApiMacSha256 api = new ApiMacSha256(); + + // Montar parámetros para el refund + api.setParameter("DS_MERCHANT_MERCHANTCODE", merchantCode); + api.setParameter("DS_MERCHANT_TERMINAL", terminal); + api.setParameter("DS_MERCHANT_ORDER", order); + api.setParameter("DS_MERCHANT_AMOUNT", String.valueOf(amountCents)); + api.setParameter("DS_MERCHANT_CURRENCY", currency); + api.setParameter("DS_MERCHANT_TRANSACTIONTYPE", "3"); // 3 = devolución + api.setParameter("DS_MERCHANT_MERCHANTURL", ""); + api.setParameter("DS_MERCHANT_URLOK", ""); + api.setParameter("DS_MERCHANT_URLKO", ""); + + // Crear parámetros y firma (como en tu PHP) + String merchantParameters = api.createMerchantParameters(); + String signature = api.createMerchantSignature(secretKeyBase64); + + // Montar el JSON para Redsys REST + String json = """ + { + "Ds_MerchantParameters": "%s", + "Ds_Signature": "%s", + "Ds_SignatureVersion": "HMAC_SHA256_V1" + } + """.formatted(merchantParameters, signature); + + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create(urlRefund)) + .header("Content-Type", "application/json; charset=UTF-8") + .POST(HttpRequest.BodyPublishers.ofString(json)) + .build(); + + HttpResponse response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); + + if (response.statusCode() / 100 != 2) + throw new IllegalStateException("HTTP error Redsys refund: " + response.statusCode()); + + if (response.body() == null || response.body().isBlank()) + throw new IllegalStateException("Respuesta vacía de Redsys refund REST"); + + // Parsear la respuesta JSON + Map respMap = MAPPER.readValue(response.body(), new TypeReference<>() { + }); + + // Redsys puede devolver "Ds_MerchantParameters" o "errorCode" + if (respMap.containsKey("errorCode")) { + throw new IllegalStateException("Error Redsys refund: " + respMap.get("errorCode")); + } + + String dsMerchantParametersResp = (String) respMap.get("Ds_MerchantParameters"); + if (dsMerchantParametersResp == null) { + throw new IllegalStateException("Respuesta Redsys refund sin Ds_MerchantParameters"); + } + + // Decodificar MerchantParameters de la respuesta + Map decoded = decodeMerchantParametersToMap(dsMerchantParametersResp); + + String dsResponse = String.valueOf(decoded.get("Ds_Response")); + if (!"0900".equals(dsResponse)) { + throw new IllegalStateException("Devolución rechazada, Ds_Response=" + dsResponse); + } + + return String.valueOf(decoded.getOrDefault("Ds_AuthorisationCode", order)); + } + + } diff --git a/src/main/java/com/imprimelibros/erp/users/UserDao.java b/src/main/java/com/imprimelibros/erp/users/UserDao.java index de2645e..ec206de 100644 --- a/src/main/java/com/imprimelibros/erp/users/UserDao.java +++ b/src/main/java/com/imprimelibros/erp/users/UserDao.java @@ -19,60 +19,63 @@ import org.springframework.lang.Nullable; @Repository public interface UserDao extends JpaRepository, JpaSpecificationExecutor { - // Aplicamos EntityGraph a la versión con Specification+Pageable - @Override - @EntityGraph(attributePaths = { "rolesLink", "rolesLink.role" }) - @NonNull - Page findAll(@Nullable Specification spec, @NonNull Pageable pageable); + // Aplicamos EntityGraph a la versión con Specification+Pageable + @Override + @EntityGraph(attributePaths = { "rolesLink", "rolesLink.role" }) + @NonNull + Page findAll(@Nullable Specification spec, @NonNull Pageable pageable); - Optional findByUserNameIgnoreCase(String userName); + Optional findByUserNameIgnoreCase(String userName); - boolean existsByUserNameIgnoreCase(String userName); + boolean existsByUserNameIgnoreCase(String userName); - // Para comprobar si existe al hacer signup - @Query(value = """ - SELECT id, deleted, enabled - FROM users - WHERE LOWER(username) = LOWER(:userName) - LIMIT 1 - """, nativeQuery = true) - Optional findLiteByUserNameIgnoreCase(@Param("userName") String userName); + // Para comprobar si existe al hacer signup + @Query(value = """ + SELECT id, deleted, enabled + FROM users + WHERE LOWER(username) = LOWER(:userName) + LIMIT 1 + """, nativeQuery = true) + Optional findLiteByUserNameIgnoreCase(@Param("userName") String userName); - boolean existsByUserNameIgnoreCaseAndIdNot(String userName, Long id); + boolean existsByUserNameIgnoreCaseAndIdNot(String userName, Long id); - // Nuevo: para login/negocio "activo" - @EntityGraph(attributePaths = { "rolesLink", "rolesLink.role" }) - Optional findByUserNameIgnoreCaseAndEnabledTrueAndDeletedFalse(String userName); + // Nuevo: para login/negocio "activo" + @EntityGraph(attributePaths = { "rolesLink", "rolesLink.role" }) + Optional findByUserNameIgnoreCaseAndEnabledTrueAndDeletedFalse(String userName); - // Para poder restaurar, necesitas leer ignorando @Where (native): - @Query(value = "SELECT * FROM users WHERE id = :id", nativeQuery = true) - Optional findByIdIncludingDeleted(@Param("id") Long id); + // Para poder restaurar, necesitas leer ignorando @Where (native): + @Query(value = "SELECT * FROM users WHERE id = :id", nativeQuery = true) + Optional findByIdIncludingDeleted(@Param("id") Long id); - @Query(value = "SELECT * FROM users WHERE deleted = TRUE", nativeQuery = true) - List findAllDeleted(); + @Query(value = "SELECT * FROM users WHERE deleted = TRUE", nativeQuery = true) + List findAllDeleted(); - @Query("select u.id from User u where lower(u.userName) = lower(:userName)") - Optional findIdByUserNameIgnoreCase(@Param("userName") String userName); + @Query("select u.id from User u where lower(u.userName) = lower(:userName)") + Optional findIdByUserNameIgnoreCase(@Param("userName") String userName); - @Query(value = """ - SELECT DISTINCT u - FROM User u - JOIN u.rolesLink rl - JOIN rl.role r - WHERE (:role IS NULL OR r.name = :role) - AND (:q IS NULL OR LOWER(u.fullName) LIKE LOWER(CONCAT('%', :q, '%')) - OR LOWER(u.userName) LIKE LOWER(CONCAT('%', :q, '%'))) - """, countQuery = """ - SELECT COUNT(DISTINCT u.id) - FROM User u - JOIN u.rolesLink rl - JOIN rl.role r - WHERE (:role IS NULL OR r.name = :role) - AND (:q IS NULL OR LOWER(u.fullName) LIKE LOWER(CONCAT('%', :q, '%')) - OR LOWER(u.userName) LIKE LOWER(CONCAT('%', :q, '%'))) - """) - Page searchUsers(@Param("role") String role, - @Param("q") String q, - Pageable pageable); + @Query(value = """ + SELECT DISTINCT u + FROM User u + JOIN u.rolesLink rl + JOIN rl.role r + WHERE (:role IS NULL OR r.name = :role) + AND (:q IS NULL OR LOWER(u.fullName) LIKE LOWER(CONCAT('%', :q, '%')) + OR LOWER(u.userName) LIKE LOWER(CONCAT('%', :q, '%'))) + """, countQuery = """ + SELECT COUNT(DISTINCT u.id) + FROM User u + JOIN u.rolesLink rl + JOIN rl.role r + WHERE (:role IS NULL OR r.name = :role) + AND (:q IS NULL OR LOWER(u.fullName) LIKE LOWER(CONCAT('%', :q, '%')) + OR LOWER(u.userName) LIKE LOWER(CONCAT('%', :q, '%'))) + """) + Page searchUsers(@Param("role") String role, + @Param("q") String q, + Pageable pageable); + + @Query("select u.id from User u where lower(u.fullName) like lower(concat('%', :name, '%'))") + List findIdsByFullNameLike(@Param("name") String name); } diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 5c025ce..318538b 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -20,6 +20,8 @@ safekat.api.password=Safekat2024 # Configuración Redsys redsys.environment=test +redsys.url=https://sis-t.redsys.es:25443/sis/realizarPago +redsys.refund.url=https://sis-t.redsys.es:25443/sis/rest/trataPeticionREST redsys.urls.ok=http://localhost:8080/pagos/redsys/ok redsys.urls.ko=http://localhost:8080/pagos/redsys/ko -redsys.urls.notify=http://localhost:8080/pagos/redsys/notify \ No newline at end of file +redsys.urls.notify=https://orological-sacrilegiously-lucille.ngrok-free.dev/pagos/redsys/notify \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index 40ae4a5..43d6eef 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -20,6 +20,8 @@ safekat.api.password=Safekat2024 # Configuración Redsys redsys.environment=test +redsys.url=https://sis-t.redsys.es:25443/sis/realizarPago +redsys.refund.url=https://sis-t.redsys.es:25443/sis/rest/trataPeticionREST redsys.urls.ok=https://imprimelibros.jjimenez.eu/pagos/redsys/ok redsys.urls.ko=https://imprimelibros.jjimenez.eu/pagos/redsys/ko redsys.urls.notify=https://imprimelibros.jjimenez.eu/pagos/redsys/notify \ No newline at end of file diff --git a/src/main/resources/db/changelog/changesets/0007-payments-core.yml b/src/main/resources/db/changelog/changesets/0007-payments-core.yml new file mode 100644 index 0000000..a6b9341 --- /dev/null +++ b/src/main/resources/db/changelog/changesets/0007-payments-core.yml @@ -0,0 +1,418 @@ +databaseChangeLog: + - changeSet: + id: 0007-payments-core + author: jjo + changes: + # 2) payments + - createTable: + tableName: payments + columns: + - column: + name: id + type: BIGINT AUTO_INCREMENT + constraints: + primaryKey: true + nullable: false + - column: + name: order_id + type: BIGINT + - column: + name: user_id + type: BIGINT + - column: + name: currency + type: CHAR(3) + constraints: + nullable: false + - column: + name: amount_total_cents + type: BIGINT + constraints: + nullable: false + - column: + name: amount_captured_cents + type: BIGINT + defaultValueNumeric: 0 + constraints: + nullable: false + - column: + name: amount_refunded_cents + type: BIGINT + defaultValueNumeric: 0 + constraints: + nullable: false + - column: + name: status + type: "ENUM('requires_payment_method','requires_action','authorized','captured','partially_refunded','refunded','canceled','failed')" + defaultValue: "requires_payment_method" + constraints: + nullable: false + - column: + name: capture_method + type: "ENUM('automatic','manual')" + defaultValue: "automatic" + constraints: + nullable: false + - column: + name: gateway + type: VARCHAR(32) + constraints: + nullable: false + - column: + name: gateway_payment_id + type: VARCHAR(128) + - column: + name: gateway_order_id + type: VARCHAR(12) + - column: + name: authorization_code + type: VARCHAR(32) + - column: + name: three_ds_status + type: "ENUM('not_applicable','attempted','challenge','succeeded','failed')" + defaultValue: "not_applicable" + constraints: + nullable: false + - column: + name: descriptor + type: VARCHAR(22) + - column: + name: client_ip + type: VARBINARY(16) + - column: + name: authorized_at + type: DATETIME + - column: + name: captured_at + type: DATETIME + - column: + name: canceled_at + type: DATETIME + - column: + name: failed_at + type: DATETIME + - column: + name: metadata + type: JSON + - column: + name: created_at + type: DATETIME + defaultValueComputed: CURRENT_TIMESTAMP + constraints: + nullable: false + - column: + name: updated_at + type: DATETIME + defaultValueComputed: "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" + constraints: + nullable: false + + - createIndex: + tableName: payments + indexName: idx_payments_order + columns: + - column: + name: order_id + + - createIndex: + tableName: payments + indexName: idx_payments_gateway + columns: + - column: + name: gateway + - column: + name: gateway_payment_id + + - createIndex: + tableName: payments + indexName: idx_payments_status + columns: + - column: + name: status + + - addUniqueConstraint: + tableName: payments + columnNames: gateway, gateway_order_id + constraintName: uq_payments_gateway_order + + # 3) payment_transactions + - createTable: + tableName: payment_transactions + columns: + - column: + name: id + type: BIGINT AUTO_INCREMENT + constraints: + primaryKey: true + nullable: false + - column: + name: payment_id + type: BIGINT + constraints: + nullable: false + - column: + name: type + type: "ENUM('AUTH','CAPTURE','REFUND','VOID')" + constraints: + nullable: false + - column: + name: status + type: "ENUM('pending','succeeded','failed')" + constraints: + nullable: false + - column: + name: amount_cents + type: BIGINT + constraints: + nullable: false + - column: + name: currency + type: CHAR(3) + constraints: + nullable: false + - column: + name: gateway_transaction_id + type: VARCHAR(128) + - column: + name: gateway_response_code + type: VARCHAR(64) + - column: + name: avs_result + type: VARCHAR(8) + - column: + name: cvv_result + type: VARCHAR(8) + - column: + name: three_ds_version + type: VARCHAR(16) + - column: + name: idempotency_key + type: VARCHAR(128) + - column: + name: request_payload + type: JSON + - column: + name: response_payload + type: JSON + - column: + name: processed_at + type: DATETIME + - column: + name: created_at + type: DATETIME + defaultValueComputed: CURRENT_TIMESTAMP + constraints: + nullable: false + + - addForeignKeyConstraint: + baseTableName: payment_transactions + baseColumnNames: payment_id + referencedTableName: payments + referencedColumnNames: id + constraintName: fk_tx_payment + onDelete: CASCADE + + - addUniqueConstraint: + tableName: payment_transactions + columnNames: gateway_transaction_id + constraintName: uq_tx_gateway_txid + + - createIndex: + tableName: payment_transactions + indexName: idx_tx_pay + columns: + - column: + name: payment_id + + - createIndex: + tableName: payment_transactions + indexName: idx_tx_type_status + columns: + - column: + name: type + - column: + name: status + + - createIndex: + tableName: payment_transactions + indexName: idx_tx_idem + columns: + - column: + name: idempotency_key + + # 4) refunds + - createTable: + tableName: refunds + columns: + - column: + name: id + type: BIGINT AUTO_INCREMENT + constraints: + primaryKey: true + nullable: false + - column: + name: payment_id + type: BIGINT + constraints: + nullable: false + - column: + name: transaction_id + type: BIGINT + - column: + name: amount_cents + type: BIGINT + constraints: + nullable: false + - column: + name: reason + type: "ENUM('customer_request','partial_return','pricing_adjustment','duplicate','fraud','other')" + defaultValue: "customer_request" + constraints: + nullable: false + - column: + name: status + type: "ENUM('pending','succeeded','failed','canceled')" + defaultValue: "pending" + constraints: + nullable: false + - column: + name: requested_by_user_id + type: BIGINT + - column: + name: requested_at + type: DATETIME + defaultValueComputed: CURRENT_TIMESTAMP + constraints: + nullable: false + - column: + name: processed_at + type: DATETIME + - column: + name: gateway_refund_id + type: VARCHAR(128) + - column: + name: notes + type: VARCHAR(500) + - column: + name: metadata + type: JSON + + - addForeignKeyConstraint: + baseTableName: refunds + baseColumnNames: payment_id + referencedTableName: payments + referencedColumnNames: id + constraintName: fk_ref_payment + onDelete: CASCADE + + - addForeignKeyConstraint: + baseTableName: refunds + baseColumnNames: transaction_id + referencedTableName: payment_transactions + referencedColumnNames: id + constraintName: fk_ref_tx + onDelete: SET NULL + + - addUniqueConstraint: + tableName: refunds + columnNames: gateway_refund_id + constraintName: uq_refund_gateway_id + + - createIndex: + tableName: refunds + indexName: idx_ref_pay + columns: + - column: + name: payment_id + + - createIndex: + tableName: refunds + indexName: idx_ref_status + columns: + - column: + name: status + + # 5) webhook_events + - createTable: + tableName: webhook_events + columns: + - column: + name: id + type: BIGINT AUTO_INCREMENT + constraints: + primaryKey: true + nullable: false + - column: + name: provider + type: VARCHAR(32) + constraints: + nullable: false + - column: + name: event_type + type: VARCHAR(64) + constraints: + nullable: false + - column: + name: event_id + type: VARCHAR(128) + - column: + name: signature + type: VARCHAR(512) + - column: + name: payload + type: JSON + constraints: + nullable: false + - column: + name: processed + type: TINYINT(1) + defaultValueNumeric: 0 + constraints: + nullable: false + - column: + name: processed_at + type: DATETIME + - column: + name: attempts + type: INT + defaultValueNumeric: 0 + constraints: + nullable: false + - column: + name: last_error + type: VARCHAR(500) + - column: + name: created_at + type: DATETIME + defaultValueComputed: CURRENT_TIMESTAMP + constraints: + nullable: false + + - addUniqueConstraint: + tableName: webhook_events + columnNames: provider, event_id + constraintName: uq_webhook_provider_event + + - createIndex: + tableName: webhook_events + indexName: idx_webhook_processed + columns: + - column: + name: processed + + + rollback: + # Se borran las tablas en orden inverso de dependencias + + - dropTable: + tableName: webhook_events + + - dropTable: + tableName: refunds + + - dropTable: + tableName: payment_transactions + + - dropTable: + tableName: payments + diff --git a/src/main/resources/db/changelog/changesets/0008-update-cart-status-constraint.yml b/src/main/resources/db/changelog/changesets/0008-update-cart-status-constraint.yml new file mode 100644 index 0000000..2ee2be7 --- /dev/null +++ b/src/main/resources/db/changelog/changesets/0008-update-cart-status-constraint.yml @@ -0,0 +1,47 @@ +databaseChangeLog: + - changeSet: + id: 0008-update-cart-status-constraint + author: jjo + changes: + # 1) Eliminar el índice único antiguo (user_id, status) + - sql: + sql: | + ALTER TABLE carts + DROP INDEX uq_carts_user_active; + + # 2) Añadir columna generada 'active_flag' + # Será 1 si status = 'ACTIVE', y NULL en cualquier otro caso + - sql: + sql: | + ALTER TABLE carts + ADD COLUMN active_flag TINYINT(1) + GENERATED ALWAYS AS ( + CASE WHEN status = 'ACTIVE' THEN 1 ELSE NULL END + ); + + # 3) Crear el nuevo índice único: + # solo limita (user_id, active_flag=1), + # se permiten muchos registros con active_flag NULL (LOCKED, COMPLETED, etc.) + - sql: + sql: | + CREATE UNIQUE INDEX uq_carts_user_active + ON carts (user_id, active_flag); + + rollback: + # 🔙 1) Eliminar el índice nuevo basado en active_flag + - sql: + sql: | + ALTER TABLE carts + DROP INDEX uq_carts_user_active; + + # 🔙 2) Eliminar la columna generada active_flag + - sql: + sql: | + ALTER TABLE carts + DROP COLUMN active_flag; + + # 🔙 3) Restaurar el índice único original (user_id, status) + - sql: + sql: | + CREATE UNIQUE INDEX uq_carts_user_active + ON carts (user_id, status); diff --git a/src/main/resources/db/changelog/changesets/0009-add-composite-unique-txid-type.yml b/src/main/resources/db/changelog/changesets/0009-add-composite-unique-txid-type.yml new file mode 100644 index 0000000..6217dca --- /dev/null +++ b/src/main/resources/db/changelog/changesets/0009-add-composite-unique-txid-type.yml @@ -0,0 +1,29 @@ +databaseChangeLog: + - changeSet: + id: 0009-drop-unique-refund-gateway-id + author: JJO + changes: + # 1️⃣ Eliminar la UNIQUE constraint sobre gateway_refund_id + - dropUniqueConstraint: + constraintName: uq_refund_gateway_id + tableName: refunds + + # 2️⃣ Crear un índice normal (no único) para acelerar búsquedas por gateway_refund_id + - createIndex: + tableName: refunds + indexName: idx_refunds_gateway_refund_id + columns: + - column: + name: gateway_refund_id + + rollback: + # 🔙 1) Eliminar el índice normal creado en este changeSet + - dropIndex: + indexName: idx_refunds_gateway_refund_id + tableName: refunds + + # 🔙 2) Restaurar la UNIQUE constraint original + - addUniqueConstraint: + tableName: refunds + columnNames: gateway_refund_id + constraintName: uq_refund_gateway_id diff --git a/src/main/resources/db/changelog/changesets/0010-drop-unique-tx-gateway.yml b/src/main/resources/db/changelog/changesets/0010-drop-unique-tx-gateway.yml new file mode 100644 index 0000000..d688737 --- /dev/null +++ b/src/main/resources/db/changelog/changesets/0010-drop-unique-tx-gateway.yml @@ -0,0 +1,30 @@ +databaseChangeLog: + - changeSet: + id: 0010-drop-unique-tx-gateway + author: JJO + changes: + # 1️⃣ Eliminar la UNIQUE constraint sobre (gateway_transaction_id, type) + - dropUniqueConstraint: + constraintName: uq_tx_gateway_txid_type + tableName: payment_transactions + + # 2️⃣ Crear un índice normal (no único) sobre gateway_transaction_id + # para poder seguir buscando rápido por este campo + - createIndex: + tableName: payment_transactions + indexName: idx_payment_tx_gateway_txid + columns: + - column: + name: gateway_transaction_id + + rollback: + # 🔙 1) Eliminar el índice normal creado en este changeSet + - dropIndex: + indexName: idx_payment_tx_gateway_txid + tableName: payment_transactions + + # 🔙 2) Restaurar la UNIQUE constraint original + - addUniqueConstraint: + tableName: payment_transactions + columnNames: gateway_transaction_id, type + constraintName: uq_tx_gateway_txid_type diff --git a/src/main/resources/db/changelog/master.yml b/src/main/resources/db/changelog/master.yml index 95eb18c..6512f54 100644 --- a/src/main/resources/db/changelog/master.yml +++ b/src/main/resources/db/changelog/master.yml @@ -10,4 +10,12 @@ databaseChangeLog: - include: file: db/changelog/changesets/0005-add-carts-onlyoneshipment.yml - include: - file: db/changelog/changesets/0006-add-cart-direcciones.yml \ No newline at end of file + file: db/changelog/changesets/0006-add-cart-direcciones.yml + - include: + file: db/changelog/changesets/0007-payments-core.yml + - include: + file: db/changelog/changesets/0008-update-cart-status-constraint.yml + - include: + file: db/changelog/changesets/0009-add-composite-unique-txid-type.yml + - include: + file: db/changelog/changesets/0010-drop-unique-tx-gateway.yml \ No newline at end of file diff --git a/src/main/resources/i18n/app_es.properties b/src/main/resources/i18n/app_es.properties index 4ce7940..74f7b97 100644 --- a/src/main/resources/i18n/app_es.properties +++ b/src/main/resources/i18n/app_es.properties @@ -23,5 +23,6 @@ app.sidebar.configuracion=Configuración app.sidebar.usuarios=Usuarios app.sidebar.direcciones=Mis Direcciones app.sidebar.direcciones-admin=Administrar Direcciones +app.sidebar.gestion-pagos=Gestión de Pagos app.errors.403=No tienes permiso para acceder a esta página. \ No newline at end of file diff --git a/src/main/resources/i18n/pagos_en.properties b/src/main/resources/i18n/pagos_en.properties new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/i18n/pagos_es.properties b/src/main/resources/i18n/pagos_es.properties new file mode 100644 index 0000000..388c0c4 --- /dev/null +++ b/src/main/resources/i18n/pagos_es.properties @@ -0,0 +1,35 @@ +pagos.module-title=Gestión de Pagos + +pagos.tab.movimientos-redsys=Movimientos Redsys +pagos.tab.transferencias-bancarias=Transferencias Bancarias + +pagos.table.cliente.nombre=Nombre Cliente +pagos.table.redsys.id=Cod. Redsys +pagos.table.pedido.id=Pedido +pagos.table.cantidad=Cantidad +pagos.table.devuelto=Devolución +pagos.table.fecha=Fecha +pagos.table.estado=Estado +pagos.table.acciones=Acciones + +pagos.table.concepto-transferencia=Concepto +pagos.table.estado-transferencia=Estado +pagos.table.fecha-created=Fecha creación +pagos.table.fecha-procesed=Fecha procesada + +pagos.table.estado.pending=Pendiente +pagos.table.estado.succeeded=Completada +pagos.table.estado.failed=Fallido +pagos.table.finalizar=Finalizar + +pagos.transferencia.no-pedido=No disponible +pagos.transferencia.finalizar.title=Finalizar Transferencia Bancaria +pagos.transferencia.finalizar.text=¿Estás seguro de que deseas marcar esta transferencia bancaria como completada? Esta acción no se puede deshacer. +pagos.transferencia.finalizar.success=Transferencia bancaria marcada como completada con éxito. +pagos.transferencia.finalizar.error.general=Error al finalizar la transferencia bancaria + +pagos.refund.title=Devolución +pagos.refund.text=Introduce la cantidad a devolver (en euros): +pagos.refund.success=Devolución solicitada con éxito. Si no se refleja inmediatamente, espere unos minutos y actualiza la página. +pagos.refund.error.general=Error al procesar la devolución +pagos.refund.error.invalid-number=Cantidad inválida para la devolución diff --git a/src/main/resources/i18n/pedidos_es.properties b/src/main/resources/i18n/pedidos_es.properties index a56dd01..50b8b27 100644 --- a/src/main/resources/i18n/pedidos_es.properties +++ b/src/main/resources/i18n/pedidos_es.properties @@ -1,17 +1,18 @@ checkout.title=Finalizar compra -checkout.summay=Resumen de la compra -checkout.shipping=Envío +checkout.summary=Resumen de la compra +checkout.billing-address=Dirección de facturación checkout.payment=Método de pago -checkout.shipping.info=Todos los pedidos incluyen un envío gratuito a la Península y Baleares por línea de pedido. -checkout.shipping.order=Envío del pedido -checkout.shipping.samples=Envío de pruebas -checkout.shipping.onlyOneShipment=Todo el pedido se envía a una única dirección. +checkout.billing-address.title=Seleccione una dirección +checkout.billing-address.new-address=Nueva dirección +checkout.billing-address.select-placeholder=Buscar en direcciones... +checkout.billing-address.errors.noAddressSelected=Debe seleccionar una dirección de facturación para el pedido. +checkout.payment.card=Tarjeta de crédito / débito +checkout.payment.bizum=Bizum +checkout.payment.bank-transfer=Transferencia bancaria +checkout.error.payment=Error al procesar el pago: el pago ha sido cancelado o rechazado Por favor, inténtelo de nuevo. +checkout.success.payment=Pago realizado con éxito. Gracias por su compra. -checkout.summary.presupuesto=#Presupuesto -checkout.summary.titulo=Título -checkout.summary.base=Base -checkout.summary.iva-4=IVA 4% -checkout.summary.iva-21=IVA 21% -checkout.summary.envio=Envío \ No newline at end of file +checkout.make-payment=Realizar el pago +checkout.authorization-required=Certifico que tengo los derechos para imprimir los archivos incluidos en mi pedido y me hago responsable en caso de reclamación de los mismos \ No newline at end of file diff --git a/src/main/resources/static/assets/css/app.css b/src/main/resources/static/assets/css/app.css index 525d693..79393de 100644 --- a/src/main/resources/static/assets/css/app.css +++ b/src/main/resources/static/assets/css/app.css @@ -8240,7 +8240,8 @@ a { display: none; } .card-radio .form-check-input:checked + .form-check-label { - border-color: #687cfe !important; + border-color: #ff7f5d !important; + background-color: rgba(255, 127, 93, 0.05); } .card-radio .form-check-input:checked + .form-check-label:before { content: "\eb80"; @@ -8249,7 +8250,7 @@ a { top: 2px; right: 6px; font-size: 16px; - color: #687cfe; + color: #ff7f5d; } .card-radio.dark .form-check-input:checked + .form-check-label:before { color: #fff; diff --git a/src/main/resources/static/assets/css/checkout.css b/src/main/resources/static/assets/css/checkout.css new file mode 100644 index 0000000..e61c7e5 --- /dev/null +++ b/src/main/resources/static/assets/css/checkout.css @@ -0,0 +1,5 @@ +.direccion-card { + flex: 1 1 350px; /* ancho mínimo 350px, crece si hay espacio */ + max-width: 350px; /* opcional, para que no se estiren demasiado */ + min-width: 340px; /* protege el ancho mínimo */ +} \ No newline at end of file diff --git a/src/main/resources/static/assets/css/imprimelibros.css b/src/main/resources/static/assets/css/imprimelibros.css index 3094832..30737c5 100644 --- a/src/main/resources/static/assets/css/imprimelibros.css +++ b/src/main/resources/static/assets/css/imprimelibros.css @@ -40,6 +40,14 @@ body { margin: 0; } +.swal2-popup .form-switch-custom .form-check-input:checked{ + border-color: #92b2a7; + background-color: #cbcecd; +} +.swal2-popup .form-switch-custom .form-check-input:checked::before { + color: #92b2a7; +} + .form-switch-presupuesto .form-check-input:checked { border-color: #92b2a7; background-color: #cbcecd; @@ -47,4 +55,15 @@ body { .form-switch-custom.form-switch-presupuesto .form-check-input:checked::before { color: #92b2a7; +} + +.alert-fadeout { + opacity: 1; + transition: opacity 1s ease; + animation: fadeout 4s forwards; +} + +@keyframes fadeout { + 0%, 70% { opacity: 1; } + 100% { opacity: 0; } } \ No newline at end of file diff --git a/src/main/resources/static/assets/images/demos/creative.png b/src/main/resources/static/assets/images/demos/creative.png deleted file mode 100644 index 84d6b29..0000000 Binary files a/src/main/resources/static/assets/images/demos/creative.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/demos/default.png b/src/main/resources/static/assets/images/demos/default.png deleted file mode 100644 index a3aa498..0000000 Binary files a/src/main/resources/static/assets/images/demos/default.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/demos/interactive.png b/src/main/resources/static/assets/images/demos/interactive.png deleted file mode 100644 index 87e8bff..0000000 Binary files a/src/main/resources/static/assets/images/demos/interactive.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/demos/material.png b/src/main/resources/static/assets/images/demos/material.png deleted file mode 100644 index f0cd4ff..0000000 Binary files a/src/main/resources/static/assets/images/demos/material.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/demos/minimal.png b/src/main/resources/static/assets/images/demos/minimal.png deleted file mode 100644 index 569408d..0000000 Binary files a/src/main/resources/static/assets/images/demos/minimal.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/demos/modern.png b/src/main/resources/static/assets/images/demos/modern.png deleted file mode 100644 index 59505f2..0000000 Binary files a/src/main/resources/static/assets/images/demos/modern.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/demos/saas.png b/src/main/resources/static/assets/images/demos/saas.png deleted file mode 100644 index a753f26..0000000 Binary files a/src/main/resources/static/assets/images/demos/saas.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/galaxy/img-1.png b/src/main/resources/static/assets/images/galaxy/img-1.png deleted file mode 100644 index 6530ae2..0000000 Binary files a/src/main/resources/static/assets/images/galaxy/img-1.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/galaxy/img-2.png b/src/main/resources/static/assets/images/galaxy/img-2.png deleted file mode 100644 index 63b926b..0000000 Binary files a/src/main/resources/static/assets/images/galaxy/img-2.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/galaxy/img-3.png b/src/main/resources/static/assets/images/galaxy/img-3.png deleted file mode 100644 index a6db13e..0000000 Binary files a/src/main/resources/static/assets/images/galaxy/img-3.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/galaxy/img-4.png b/src/main/resources/static/assets/images/galaxy/img-4.png deleted file mode 100644 index 501ee6b..0000000 Binary files a/src/main/resources/static/assets/images/galaxy/img-4.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/galaxy/img-5.png b/src/main/resources/static/assets/images/galaxy/img-5.png deleted file mode 100644 index d68930f..0000000 Binary files a/src/main/resources/static/assets/images/galaxy/img-5.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/landing/bg-pattern.png b/src/main/resources/static/assets/images/landing/bg-pattern.png deleted file mode 100644 index 3f5c984..0000000 Binary files a/src/main/resources/static/assets/images/landing/bg-pattern.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/landing/features/img-1.png b/src/main/resources/static/assets/images/landing/features/img-1.png deleted file mode 100644 index f762328..0000000 Binary files a/src/main/resources/static/assets/images/landing/features/img-1.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/landing/features/img-2.png b/src/main/resources/static/assets/images/landing/features/img-2.png deleted file mode 100644 index f67ae8e..0000000 Binary files a/src/main/resources/static/assets/images/landing/features/img-2.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/landing/features/img-3.png b/src/main/resources/static/assets/images/landing/features/img-3.png deleted file mode 100644 index 334fb74..0000000 Binary files a/src/main/resources/static/assets/images/landing/features/img-3.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/landing/img-pattern.png b/src/main/resources/static/assets/images/landing/img-pattern.png deleted file mode 100644 index 4f34ab2..0000000 Binary files a/src/main/resources/static/assets/images/landing/img-pattern.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/landing/process-arrow-img.png b/src/main/resources/static/assets/images/landing/process-arrow-img.png deleted file mode 100644 index 21fff2d..0000000 Binary files a/src/main/resources/static/assets/images/landing/process-arrow-img.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/layouts/horizontal.png b/src/main/resources/static/assets/images/layouts/horizontal.png deleted file mode 100644 index 823233d..0000000 Binary files a/src/main/resources/static/assets/images/layouts/horizontal.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/layouts/vertical.png b/src/main/resources/static/assets/images/layouts/vertical.png deleted file mode 100644 index d029739..0000000 Binary files a/src/main/resources/static/assets/images/layouts/vertical.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/modals/login.png b/src/main/resources/static/assets/images/modals/login.png deleted file mode 100644 index ca3727a..0000000 Binary files a/src/main/resources/static/assets/images/modals/login.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/modals/signup.png b/src/main/resources/static/assets/images/modals/signup.png deleted file mode 100644 index 7f5a8ce..0000000 Binary files a/src/main/resources/static/assets/images/modals/signup.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/modals/subscribe.png b/src/main/resources/static/assets/images/modals/subscribe.png deleted file mode 100644 index d009bb1..0000000 Binary files a/src/main/resources/static/assets/images/modals/subscribe.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/modals/success-payment.png b/src/main/resources/static/assets/images/modals/success-payment.png deleted file mode 100644 index cb1b77f..0000000 Binary files a/src/main/resources/static/assets/images/modals/success-payment.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/add.png b/src/main/resources/static/assets/images/nft/add.png deleted file mode 100644 index a645212..0000000 Binary files a/src/main/resources/static/assets/images/nft/add.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/bg-home.jpg b/src/main/resources/static/assets/images/nft/bg-home.jpg deleted file mode 100644 index 7ac6c28..0000000 Binary files a/src/main/resources/static/assets/images/nft/bg-home.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/bg-pattern.png b/src/main/resources/static/assets/images/nft/bg-pattern.png deleted file mode 100644 index ff1f6f4..0000000 Binary files a/src/main/resources/static/assets/images/nft/bg-pattern.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/gif/img-1.gif b/src/main/resources/static/assets/images/nft/gif/img-1.gif deleted file mode 100644 index a67690a..0000000 Binary files a/src/main/resources/static/assets/images/nft/gif/img-1.gif and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/gif/img-2.gif b/src/main/resources/static/assets/images/nft/gif/img-2.gif deleted file mode 100644 index 824f1c3..0000000 Binary files a/src/main/resources/static/assets/images/nft/gif/img-2.gif and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/gif/img-3.gif b/src/main/resources/static/assets/images/nft/gif/img-3.gif deleted file mode 100644 index 65798ce..0000000 Binary files a/src/main/resources/static/assets/images/nft/gif/img-3.gif and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/gif/img-4.gif b/src/main/resources/static/assets/images/nft/gif/img-4.gif deleted file mode 100644 index c372a5b..0000000 Binary files a/src/main/resources/static/assets/images/nft/gif/img-4.gif and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/gif/img-5.gif b/src/main/resources/static/assets/images/nft/gif/img-5.gif deleted file mode 100644 index ebc78ba..0000000 Binary files a/src/main/resources/static/assets/images/nft/gif/img-5.gif and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/img-01.jpg b/src/main/resources/static/assets/images/nft/img-01.jpg deleted file mode 100644 index 68a1af8..0000000 Binary files a/src/main/resources/static/assets/images/nft/img-01.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/img-02.jpg b/src/main/resources/static/assets/images/nft/img-02.jpg deleted file mode 100644 index cf741d1..0000000 Binary files a/src/main/resources/static/assets/images/nft/img-02.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/img-03.jpg b/src/main/resources/static/assets/images/nft/img-03.jpg deleted file mode 100644 index 9d6bdf7..0000000 Binary files a/src/main/resources/static/assets/images/nft/img-03.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/img-04.jpg b/src/main/resources/static/assets/images/nft/img-04.jpg deleted file mode 100644 index 7b96052..0000000 Binary files a/src/main/resources/static/assets/images/nft/img-04.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/img-05.jpg b/src/main/resources/static/assets/images/nft/img-05.jpg deleted file mode 100644 index e20dc33..0000000 Binary files a/src/main/resources/static/assets/images/nft/img-05.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/img-06.jpg b/src/main/resources/static/assets/images/nft/img-06.jpg deleted file mode 100644 index 2b23fac..0000000 Binary files a/src/main/resources/static/assets/images/nft/img-06.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/marketplace.png b/src/main/resources/static/assets/images/nft/marketplace.png deleted file mode 100644 index 357caeb..0000000 Binary files a/src/main/resources/static/assets/images/nft/marketplace.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/money.png b/src/main/resources/static/assets/images/nft/money.png deleted file mode 100644 index 58c19b3..0000000 Binary files a/src/main/resources/static/assets/images/nft/money.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/sell.png b/src/main/resources/static/assets/images/nft/sell.png deleted file mode 100644 index 4d7828f..0000000 Binary files a/src/main/resources/static/assets/images/nft/sell.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/wallet.png b/src/main/resources/static/assets/images/nft/wallet.png deleted file mode 100644 index 6662fbe..0000000 Binary files a/src/main/resources/static/assets/images/nft/wallet.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/wallet/alpha.png b/src/main/resources/static/assets/images/nft/wallet/alpha.png deleted file mode 100644 index c084afe..0000000 Binary files a/src/main/resources/static/assets/images/nft/wallet/alpha.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/wallet/binance.png b/src/main/resources/static/assets/images/nft/wallet/binance.png deleted file mode 100644 index dd57b47..0000000 Binary files a/src/main/resources/static/assets/images/nft/wallet/binance.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/wallet/coinbase.png b/src/main/resources/static/assets/images/nft/wallet/coinbase.png deleted file mode 100644 index 00af1c9..0000000 Binary files a/src/main/resources/static/assets/images/nft/wallet/coinbase.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/wallet/enjin.png b/src/main/resources/static/assets/images/nft/wallet/enjin.png deleted file mode 100644 index d02cb36..0000000 Binary files a/src/main/resources/static/assets/images/nft/wallet/enjin.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/wallet/kukai.png b/src/main/resources/static/assets/images/nft/wallet/kukai.png deleted file mode 100644 index c66768f..0000000 Binary files a/src/main/resources/static/assets/images/nft/wallet/kukai.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/wallet/math.png b/src/main/resources/static/assets/images/nft/wallet/math.png deleted file mode 100644 index 96c56b1..0000000 Binary files a/src/main/resources/static/assets/images/nft/wallet/math.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/nft/wallet/metamask.png b/src/main/resources/static/assets/images/nft/wallet/metamask.png deleted file mode 100644 index 72691ae..0000000 Binary files a/src/main/resources/static/assets/images/nft/wallet/metamask.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-1.png b/src/main/resources/static/assets/images/products/img-1.png deleted file mode 100644 index d075513..0000000 Binary files a/src/main/resources/static/assets/images/products/img-1.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-10.png b/src/main/resources/static/assets/images/products/img-10.png deleted file mode 100644 index 1fb84e4..0000000 Binary files a/src/main/resources/static/assets/images/products/img-10.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-2.png b/src/main/resources/static/assets/images/products/img-2.png deleted file mode 100644 index 94f71d3..0000000 Binary files a/src/main/resources/static/assets/images/products/img-2.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-3.png b/src/main/resources/static/assets/images/products/img-3.png deleted file mode 100644 index 0e46f94..0000000 Binary files a/src/main/resources/static/assets/images/products/img-3.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-4.png b/src/main/resources/static/assets/images/products/img-4.png deleted file mode 100644 index 3ba4b66..0000000 Binary files a/src/main/resources/static/assets/images/products/img-4.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-5.png b/src/main/resources/static/assets/images/products/img-5.png deleted file mode 100644 index 8feb363..0000000 Binary files a/src/main/resources/static/assets/images/products/img-5.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-6.png b/src/main/resources/static/assets/images/products/img-6.png deleted file mode 100644 index 5373831..0000000 Binary files a/src/main/resources/static/assets/images/products/img-6.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-7.png b/src/main/resources/static/assets/images/products/img-7.png deleted file mode 100644 index ad99317..0000000 Binary files a/src/main/resources/static/assets/images/products/img-7.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-8.png b/src/main/resources/static/assets/images/products/img-8.png deleted file mode 100644 index dd444d4..0000000 Binary files a/src/main/resources/static/assets/images/products/img-8.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/products/img-9.png b/src/main/resources/static/assets/images/products/img-9.png deleted file mode 100644 index d3c44f2..0000000 Binary files a/src/main/resources/static/assets/images/products/img-9.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/sidebar/img-1.jpg b/src/main/resources/static/assets/images/sidebar/img-1.jpg deleted file mode 100644 index a1981bd..0000000 Binary files a/src/main/resources/static/assets/images/sidebar/img-1.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/sidebar/img-2.jpg b/src/main/resources/static/assets/images/sidebar/img-2.jpg deleted file mode 100644 index 88c9e17..0000000 Binary files a/src/main/resources/static/assets/images/sidebar/img-2.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/sidebar/img-3.jpg b/src/main/resources/static/assets/images/sidebar/img-3.jpg deleted file mode 100644 index 5303ada..0000000 Binary files a/src/main/resources/static/assets/images/sidebar/img-3.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/sidebar/img-4.jpg b/src/main/resources/static/assets/images/sidebar/img-4.jpg deleted file mode 100644 index 49fc5cd..0000000 Binary files a/src/main/resources/static/assets/images/sidebar/img-4.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-1.jpg b/src/main/resources/static/assets/images/small/img-1.jpg deleted file mode 100644 index 9fc6c89..0000000 Binary files a/src/main/resources/static/assets/images/small/img-1.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-10.jpg b/src/main/resources/static/assets/images/small/img-10.jpg deleted file mode 100644 index a03a0a5..0000000 Binary files a/src/main/resources/static/assets/images/small/img-10.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-11.jpg b/src/main/resources/static/assets/images/small/img-11.jpg deleted file mode 100644 index 28042bb..0000000 Binary files a/src/main/resources/static/assets/images/small/img-11.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-12.jpg b/src/main/resources/static/assets/images/small/img-12.jpg deleted file mode 100644 index 61c22d4..0000000 Binary files a/src/main/resources/static/assets/images/small/img-12.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-2.jpg b/src/main/resources/static/assets/images/small/img-2.jpg deleted file mode 100644 index 0a54674..0000000 Binary files a/src/main/resources/static/assets/images/small/img-2.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-3.jpg b/src/main/resources/static/assets/images/small/img-3.jpg deleted file mode 100644 index 8ddd188..0000000 Binary files a/src/main/resources/static/assets/images/small/img-3.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-4.jpg b/src/main/resources/static/assets/images/small/img-4.jpg deleted file mode 100644 index de35f4c..0000000 Binary files a/src/main/resources/static/assets/images/small/img-4.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-5.jpg b/src/main/resources/static/assets/images/small/img-5.jpg deleted file mode 100644 index 1946b2d..0000000 Binary files a/src/main/resources/static/assets/images/small/img-5.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-6.jpg b/src/main/resources/static/assets/images/small/img-6.jpg deleted file mode 100644 index 95e6c2c..0000000 Binary files a/src/main/resources/static/assets/images/small/img-6.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-7.jpg b/src/main/resources/static/assets/images/small/img-7.jpg deleted file mode 100644 index 82166c8..0000000 Binary files a/src/main/resources/static/assets/images/small/img-7.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-8.jpg b/src/main/resources/static/assets/images/small/img-8.jpg deleted file mode 100644 index a520574..0000000 Binary files a/src/main/resources/static/assets/images/small/img-8.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/small/img-9.jpg b/src/main/resources/static/assets/images/small/img-9.jpg deleted file mode 100644 index d016ff9..0000000 Binary files a/src/main/resources/static/assets/images/small/img-9.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/sweetalert2/email-verify.png b/src/main/resources/static/assets/images/sweetalert2/email-verify.png deleted file mode 100644 index 3bb27c4..0000000 Binary files a/src/main/resources/static/assets/images/sweetalert2/email-verify.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/sweetalert2/error-message.png b/src/main/resources/static/assets/images/sweetalert2/error-message.png deleted file mode 100644 index 4c50634..0000000 Binary files a/src/main/resources/static/assets/images/sweetalert2/error-message.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/sweetalert2/join-community.png b/src/main/resources/static/assets/images/sweetalert2/join-community.png deleted file mode 100644 index 785a733..0000000 Binary files a/src/main/resources/static/assets/images/sweetalert2/join-community.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/sweetalert2/notification-message.png b/src/main/resources/static/assets/images/sweetalert2/notification-message.png deleted file mode 100644 index d299d9d..0000000 Binary files a/src/main/resources/static/assets/images/sweetalert2/notification-message.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/sweetalert2/success-message.png b/src/main/resources/static/assets/images/sweetalert2/success-message.png deleted file mode 100644 index 994ff2d..0000000 Binary files a/src/main/resources/static/assets/images/sweetalert2/success-message.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/sweetalert2/warning-message.png b/src/main/resources/static/assets/images/sweetalert2/warning-message.png deleted file mode 100644 index d55f311..0000000 Binary files a/src/main/resources/static/assets/images/sweetalert2/warning-message.png and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-1.jpg b/src/main/resources/static/assets/images/users/avatar-1.jpg deleted file mode 100644 index fb2c610..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-1.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-10.jpg b/src/main/resources/static/assets/images/users/avatar-10.jpg deleted file mode 100644 index 6d4ca62..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-10.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-2.jpg b/src/main/resources/static/assets/images/users/avatar-2.jpg deleted file mode 100644 index 52b80d1..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-2.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-3.jpg b/src/main/resources/static/assets/images/users/avatar-3.jpg deleted file mode 100644 index e6743ce..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-3.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-4.jpg b/src/main/resources/static/assets/images/users/avatar-4.jpg deleted file mode 100644 index 8ca9ed5..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-4.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-5.jpg b/src/main/resources/static/assets/images/users/avatar-5.jpg deleted file mode 100644 index 587a2c0..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-5.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-6.jpg b/src/main/resources/static/assets/images/users/avatar-6.jpg deleted file mode 100644 index 0ce684f..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-6.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-7.jpg b/src/main/resources/static/assets/images/users/avatar-7.jpg deleted file mode 100644 index a7dcc04..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-7.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-8.jpg b/src/main/resources/static/assets/images/users/avatar-8.jpg deleted file mode 100644 index c6bbf5f..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-8.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/avatar-9.jpg b/src/main/resources/static/assets/images/users/avatar-9.jpg deleted file mode 100644 index 0902524..0000000 Binary files a/src/main/resources/static/assets/images/users/avatar-9.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/multi-user.jpg b/src/main/resources/static/assets/images/users/multi-user.jpg deleted file mode 100644 index 556b5b8..0000000 Binary files a/src/main/resources/static/assets/images/users/multi-user.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/images/users/user-dummy-img.jpg b/src/main/resources/static/assets/images/users/user-dummy-img.jpg deleted file mode 100644 index b23c2de..0000000 Binary files a/src/main/resources/static/assets/images/users/user-dummy-img.jpg and /dev/null differ diff --git a/src/main/resources/static/assets/js/app.js b/src/main/resources/static/assets/js/app.js index 9f47370..5785e02 100644 --- a/src/main/resources/static/assets/js/app.js +++ b/src/main/resources/static/assets/js/app.js @@ -256,4 +256,13 @@ } } + // Oculta los alerts cuando se termina la animacion: + document.addEventListener("DOMContentLoaded", () => { + document.querySelectorAll('.alert-fadeout').forEach(alert => { + alert.addEventListener('animationend', () => { + alert.classList.add('d-none'); + }); + }); + }); + })(); diff --git a/src/main/resources/static/assets/js/pages/animation-aos.init.js b/src/main/resources/static/assets/js/pages/animation-aos.init.js deleted file mode 100644 index 96c6dde..0000000 --- a/src/main/resources/static/assets/js/pages/animation-aos.init.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Animatoin aos Js File -*/ - -AOS.init({ - easing: 'ease-out-back', - duration: 1000 -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-area.init.js b/src/main/resources/static/assets/js/pages/apexcharts-area.init.js deleted file mode 100644 index 5ae05a1..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-area.init.js +++ /dev/null @@ -1,1248 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Area Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Basic area Charts - -var areachartBasicColors = getChartColorsArray("area_chart_basic"); -if(areachartBasicColors){ -var options = { - series: [{ - name: "STOCK ABC", - data: series.monthDataSeries1.prices - }], - chart: { - type: 'area', - height: 350, - zoom: { - enabled: false - } - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight' - }, - - title: { - text: 'Fundamental Analysis of Stocks', - align: 'left', - style: { - fontWeight: 500, - }, - }, - subtitle: { - text: 'Price Movements', - align: 'left' - }, - labels: series.monthDataSeries1.dates, - xaxis: { - type: 'datetime', - }, - yaxis: { - opposite: true - }, - legend: { - horizontalAlign: 'left' - }, - colors: areachartBasicColors -}; - -var chart = new ApexCharts(document.querySelector("#area_chart_basic"), options); -chart.render(); -} - -// Spline Area Charts -var areachartSplineColors = getChartColorsArray("area_chart_spline"); -if(areachartSplineColors){ -var options = { - series: [{ - name: 'series1', - data: [31, 40, 28, 51, 42, 109, 100] - }, { - name: 'series2', - data: [11, 32, 45, 32, 34, 52, 41] - }], - chart: { - height: 350, - type: 'area', - toolbar: { - show: false - } - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'smooth' - }, - colors: areachartSplineColors, - xaxis: { - type: 'datetime', - categories: ["2018-09-19T00:00:00.000Z", "2018-09-19T01:30:00.000Z", "2018-09-19T02:30:00.000Z", "2018-09-19T03:30:00.000Z", "2018-09-19T04:30:00.000Z", "2018-09-19T05:30:00.000Z", "2018-09-19T06:30:00.000Z"] - }, - tooltip: { - x: { - format: 'dd/MM/yy HH:mm' - }, - }, -}; - -var chart = new ApexCharts(document.querySelector("#area_chart_spline"), options); -chart.render(); -} - -// Area Chart - Datetime X - Axis -var areachartDatetimeColors = getChartColorsArray("area_chart_datetime"); -if(areachartDatetimeColors){ -var timelinechart = { - series: [{ - data: [ - [1327359600000, 30.95], - [1327446000000, 31.34], - [1327532400000, 31.18], - [1327618800000, 31.05], - [1327878000000, 31.00], - [1327964400000, 30.95], - [1328050800000, 31.24], - [1328137200000, 31.29], - [1328223600000, 31.85], - [1328482800000, 31.86], - [1328569200000, 32.28], - [1328655600000, 32.10], - [1328742000000, 32.65], - [1328828400000, 32.21], - [1329087600000, 32.35], - [1329174000000, 32.44], - [1329260400000, 32.46], - [1329346800000, 32.86], - [1329433200000, 32.75], - [1329778800000, 32.54], - [1329865200000, 32.33], - [1329951600000, 32.97], - [1330038000000, 33.41], - [1330297200000, 33.27], - [1330383600000, 33.27], - [1330470000000, 32.89], - [1330556400000, 33.10], - [1330642800000, 33.73], - [1330902000000, 33.22], - [1330988400000, 31.99], - [1331074800000, 32.41], - [1331161200000, 33.05], - [1331247600000, 33.64], - [1331506800000, 33.56], - [1331593200000, 34.22], - [1331679600000, 33.77], - [1331766000000, 34.17], - [1331852400000, 33.82], - [1332111600000, 34.51], - [1332198000000, 33.16], - [1332284400000, 33.56], - [1332370800000, 33.71], - [1332457200000, 33.81], - [1332712800000, 34.40], - [1332799200000, 34.63], - [1332885600000, 34.46], - [1332972000000, 34.48], - [1333058400000, 34.31], - [1333317600000, 34.70], - [1333404000000, 34.31], - [1333490400000, 33.46], - [1333576800000, 33.59], - [1333922400000, 33.22], - [1334008800000, 32.61], - [1334095200000, 33.01], - [1334181600000, 33.55], - [1334268000000, 33.18], - [1334527200000, 32.84], - [1334613600000, 33.84], - [1334700000000, 33.39], - [1334786400000, 32.91], - [1334872800000, 33.06], - [1335132000000, 32.62], - [1335218400000, 32.40], - [1335304800000, 33.13], - [1335391200000, 33.26], - [1335477600000, 33.58], - [1335736800000, 33.55], - [1335823200000, 33.77], - [1335909600000, 33.76], - [1335996000000, 33.32], - [1336082400000, 32.61], - [1336341600000, 32.52], - [1336428000000, 32.67], - [1336514400000, 32.52], - [1336600800000, 31.92], - [1336687200000, 32.20], - [1336946400000, 32.23], - [1337032800000, 32.33], - [1337119200000, 32.36], - [1337205600000, 32.01], - [1337292000000, 31.31], - [1337551200000, 32.01], - [1337637600000, 32.01], - [1337724000000, 32.18], - [1337810400000, 31.54], - [1337896800000, 31.60], - [1338242400000, 32.05], - [1338328800000, 31.29], - [1338415200000, 31.05], - [1338501600000, 29.82], - [1338760800000, 30.31], - [1338847200000, 30.70], - [1338933600000, 31.69], - [1339020000000, 31.32], - [1339106400000, 31.65], - [1339365600000, 31.13], - [1339452000000, 31.77], - [1339538400000, 31.79], - [1339624800000, 31.67], - [1339711200000, 32.39], - [1339970400000, 32.63], - [1340056800000, 32.89], - [1340143200000, 31.99], - [1340229600000, 31.23], - [1340316000000, 31.57], - [1340575200000, 30.84], - [1340661600000, 31.07], - [1340748000000, 31.41], - [1340834400000, 31.17], - [1340920800000, 32.37], - [1341180000000, 32.19], - [1341266400000, 32.51], - [1341439200000, 32.53], - [1341525600000, 31.37], - [1341784800000, 30.43], - [1341871200000, 30.44], - [1341957600000, 30.20], - [1342044000000, 30.14], - [1342130400000, 30.65], - [1342389600000, 30.40], - [1342476000000, 30.65], - [1342562400000, 31.43], - [1342648800000, 31.89], - [1342735200000, 31.38], - [1342994400000, 30.64], - [1343080800000, 30.02], - [1343167200000, 30.33], - [1343253600000, 30.95], - [1343340000000, 31.89], - [1343599200000, 31.01], - [1343685600000, 30.88], - [1343772000000, 30.69], - [1343858400000, 30.58], - [1343944800000, 32.02], - [1344204000000, 32.14], - [1344290400000, 32.37], - [1344376800000, 32.51], - [1344463200000, 32.65], - [1344549600000, 32.64], - [1344808800000, 32.27], - [1344895200000, 32.10], - [1344981600000, 32.91], - [1345068000000, 33.65], - [1345154400000, 33.80], - [1345413600000, 33.92], - [1345500000000, 33.75], - [1345586400000, 33.84], - [1345672800000, 33.50], - [1345759200000, 32.26], - [1346018400000, 32.32], - [1346104800000, 32.06], - [1346191200000, 31.96], - [1346277600000, 31.46], - [1346364000000, 31.27], - [1346709600000, 31.43], - [1346796000000, 32.26], - [1346882400000, 32.79], - [1346968800000, 32.46], - [1347228000000, 32.13], - [1347314400000, 32.43], - [1347400800000, 32.42], - [1347487200000, 32.81], - [1347573600000, 33.34], - [1347832800000, 33.41], - [1347919200000, 32.57], - [1348005600000, 33.12], - [1348092000000, 34.53], - [1348178400000, 33.83], - [1348437600000, 33.41], - [1348524000000, 32.90], - [1348610400000, 32.53], - [1348696800000, 32.80], - [1348783200000, 32.44], - [1349042400000, 32.62], - [1349128800000, 32.57], - [1349215200000, 32.60], - [1349301600000, 32.68], - [1349388000000, 32.47], - [1349647200000, 32.23], - [1349733600000, 31.68], - [1349820000000, 31.51], - [1349906400000, 31.78], - [1349992800000, 31.94], - [1350252000000, 32.33], - [1350338400000, 33.24], - [1350424800000, 33.44], - [1350511200000, 33.48], - [1350597600000, 33.24], - [1350856800000, 33.49], - [1350943200000, 33.31], - [1351029600000, 33.36], - [1351116000000, 33.40], - [1351202400000, 34.01], - [1351638000000, 34.02], - [1351724400000, 34.36], - [1351810800000, 34.39], - [1352070000000, 34.24], - [1352156400000, 34.39], - [1352242800000, 33.47], - [1352329200000, 32.98], - [1352415600000, 32.90], - [1352674800000, 32.70], - [1352761200000, 32.54], - [1352847600000, 32.23], - [1352934000000, 32.64], - [1353020400000, 32.65], - [1353279600000, 32.92], - [1353366000000, 32.64], - [1353452400000, 32.84], - [1353625200000, 33.40], - [1353884400000, 33.30], - [1353970800000, 33.18], - [1354057200000, 33.88], - [1354143600000, 34.09], - [1354230000000, 34.61], - [1354489200000, 34.70], - [1354575600000, 35.30], - [1354662000000, 35.40], - [1354748400000, 35.14], - [1354834800000, 35.48], - [1355094000000, 35.75], - [1355180400000, 35.54], - [1355266800000, 35.96], - [1355353200000, 35.53], - [1355439600000, 37.56], - [1355698800000, 37.42], - [1355785200000, 37.49], - [1355871600000, 38.09], - [1355958000000, 37.87], - [1356044400000, 37.71], - [1356303600000, 37.53], - [1356476400000, 37.55], - [1356562800000, 37.30], - [1356649200000, 36.90], - [1356908400000, 37.68], - [1357081200000, 38.34], - [1357167600000, 37.75], - [1357254000000, 38.13], - [1357513200000, 37.94], - [1357599600000, 38.14], - [1357686000000, 38.66], - [1357772400000, 38.62], - [1357858800000, 38.09], - [1358118000000, 38.16], - [1358204400000, 38.15], - [1358290800000, 37.88], - [1358377200000, 37.73], - [1358463600000, 37.98], - [1358809200000, 37.95], - [1358895600000, 38.25], - [1358982000000, 38.10], - [1359068400000, 38.32], - [1359327600000, 38.24], - [1359414000000, 38.52], - [1359500400000, 37.94], - [1359586800000, 37.83], - [1359673200000, 38.34], - [1359932400000, 38.10], - [1360018800000, 38.51], - [1360105200000, 38.40], - [1360191600000, 38.07], - [1360278000000, 39.12], - [1360537200000, 38.64], - [1360623600000, 38.89], - [1360710000000, 38.81], - [1360796400000, 38.61], - [1360882800000, 38.63], - [1361228400000, 38.99], - [1361314800000, 38.77], - [1361401200000, 38.34], - [1361487600000, 38.55], - [1361746800000, 38.11], - [1361833200000, 38.59], - [1361919600000, 39.60], - ] - }], - chart: { - id: 'area-datetime', - type: 'area', - height: 320, - zoom: { - autoScaleYaxis: true - }, - toolbar: { - show: false - }, - }, - colors: areachartDatetimeColors, - annotations: { - yaxis: [{ - y: 30, - borderColor: '#999', - label: { - show: true, - text: 'Support', - style: { - color: "#fff", - background: '#e83e8c' - } - } - }], - xaxis: [{ - x: new Date('14 Nov 2012').getTime(), - borderColor: '#999', - yAxisIndex: 0, - label: { - show: true, - text: 'Rally', - style: { - color: "#fff", - background: '#564ab1' - } - } - }] - }, - dataLabels: { - enabled: false - }, - markers: { - size: 0, - style: 'hollow', - }, - xaxis: { - type: 'datetime', - min: new Date('01 Mar 2012').getTime(), - tickAmount: 6, - }, - tooltip: { - x: { - format: 'dd MMM yyyy' - } - }, - fill: { - type: 'gradient', - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [20, 100, 100, 100] - }, - }, -}; - -var timelinechart = new ApexCharts(document.querySelector("#area_chart_datetime"), timelinechart); -timelinechart.render(); -} - -// Datetime chart button -var resetCssClasses = function (activeEl) { - var els = document.querySelectorAll('.timeline') - Array.prototype.forEach.call(els, function (el) { - el.classList.remove('active') - }) - - activeEl.target.classList.add('active') -} - -document - .querySelector('#one_month') - .addEventListener('click', function (e) { - resetCssClasses(e) - - timelinechart.zoomX( - new Date('28 Jan 2013').getTime(), - new Date('27 Feb 2013').getTime() - ) - }) - -document - .querySelector('#six_months') - .addEventListener('click', function (e) { - resetCssClasses(e) - - timelinechart.zoomX( - new Date('27 Sep 2012').getTime(), - new Date('27 Feb 2013').getTime() - ) - }) - -document - .querySelector('#one_year') - .addEventListener('click', function (e) { - resetCssClasses(e) - timelinechart.zoomX( - new Date('27 Feb 2012').getTime(), - new Date('27 Feb 2013').getTime() - ) - }) - -document.querySelector('#all').addEventListener('click', function (e) { - resetCssClasses(e) - - timelinechart.zoomX( - new Date('23 Jan 2012').getTime(), - new Date('27 Feb 2013').getTime() - ) -}) - -// Area with Nagetive Values -var areachartNegativeColors = getChartColorsArray("area_chart_negative"); -if(areachartNegativeColors){ -var options = { - series: [{ - name: 'North', - data: [{ - x: 1996, - y: 322 - }, - { - x: 1997, - y: 324 - }, - { - x: 1998, - y: 329 - }, - { - x: 1999, - y: 342 - }, - { - x: 2000, - y: 348 - }, - { - x: 2001, - y: 334 - }, - { - x: 2002, - y: 325 - }, - { - x: 2003, - y: 316 - }, - { - x: 2004, - y: 318 - }, - { - x: 2005, - y: 330 - }, - { - x: 2006, - y: 355 - }, - { - x: 2007, - y: 366 - }, - { - x: 2008, - y: 337 - }, - { - x: 2009, - y: 352 - }, - { - x: 2010, - y: 377 - }, - { - x: 2011, - y: 383 - }, - { - x: 2012, - y: 344 - }, - { - x: 2013, - y: 366 - }, - { - x: 2014, - y: 389 - }, - { - x: 2015, - y: 334 - } - ] - }, { - name: 'South', - data: [{ - x: 1996, - y: 162 - }, - { - x: 1997, - y: 90 - }, - { - x: 1998, - y: 50 - }, - { - x: 1999, - y: 77 - }, - { - x: 2000, - y: 35 - }, - { - x: 2001, - y: -45 - }, - { - x: 2002, - y: -88 - }, - { - x: 2003, - y: -120 - }, - { - x: 2004, - y: -156 - }, - { - x: 2005, - y: -123 - }, - { - x: 2006, - y: -88 - }, - { - x: 2007, - y: -66 - }, - { - x: 2008, - y: -45 - }, - { - x: 2009, - y: -29 - }, - { - x: 2010, - y: -45 - }, - { - x: 2011, - y: -88 - }, - { - x: 2012, - y: -132 - }, - { - x: 2013, - y: -146 - }, - { - x: 2014, - y: -169 - }, - { - x: 2015, - y: -184 - } - ] - }], - chart: { - type: 'area', - height: 350, - toolbar: { - show: false - } - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight' - }, - title: { - text: 'Area with Negative Values', - align: 'left', - - style: { - fontSize: '14px', - fontWeight: 500, - } - }, - xaxis: { - type: 'datetime', - axisBorder: { - show: false - }, - axisTicks: { - show: false - } - }, - colors: areachartNegativeColors, - yaxis: { - tickAmount: 4, - floating: false, - - labels: { - style: { - colors: '#038edc', - }, - offsetY: -7, - offsetX: 0, - }, - axisBorder: { - show: false, - }, - axisTicks: { - show: false - } - }, - fill: { - opacity: 0.5 - }, - tooltip: { - x: { - format: "yyyy", - }, - fixed: { - enabled: false, - position: 'topRight' - } - }, - grid: { - yaxis: { - lines: { - offsetX: -30 - } - }, - padding: { - left: 20 - } - } -}; - -var chart = new ApexCharts(document.querySelector("#area_chart_negative"), options); -chart.render(); -} - -// Github Style - Area Charts -var areachartMonthsColors = getChartColorsArray("area_chart-months"); -if(areachartMonthsColors){ -var options = { - series: [{ - name: 'commits', - data: githubdata.series - }], - chart: { - id: 'chartyear', - type: 'area', - height: 120, - toolbar: { - show: false, - autoSelected: 'pan' - }, - events: { - mounted: function (chart) { - var commitsEl = document.querySelector('.cmeta span.commits'); - var commits = chart.getSeriesTotalXRange(chart.w.globals.minX, chart.w.globals.maxX) - - commitsEl.innerHTML = commits - }, - updated: function (chart) { - var commitsEl = document.querySelector('.cmeta span.commits'); - var commits = chart.getSeriesTotalXRange(chart.w.globals.minX, chart.w.globals.maxX) - - commitsEl.innerHTML = commits - } - } - }, - colors: areachartMonthsColors, - stroke: { - width: 0, - curve: 'smooth' - }, - dataLabels: { - enabled: false - }, - fill: { - opacity: 1, - type: 'solid' - }, - yaxis: { - show: false, - tickAmount: 3, - }, - xaxis: { - type: 'datetime', - } -}; - -var chart = new ApexCharts(document.querySelector("#area_chart-months"), options); -chart.render(); -} - -var areachartyearsColors = getChartColorsArray("area_chart-years"); -if(areachartyearsColors){ -var optionsYears = { - series: [{ - name: 'commits', - data: githubdata.series - }], - chart: { - height: 170, - type: 'area', - toolbar: { - autoSelected: 'selection', - }, - brush: { - enabled: true, - target: 'chartyear' - }, - selection: { - enabled: true, - xaxis: { - min: new Date('26 Jan 2014').getTime(), - max: new Date('29 Mar 2015').getTime() - } - }, - }, - colors: areachartyearsColors, - dataLabels: { - enabled: false - }, - stroke: { - width: 0, - curve: 'smooth' - }, - fill: { - opacity: 1, - type: 'solid' - }, - legend: { - position: 'top', - horizontalAlign: 'left' - }, - xaxis: { - type: 'datetime' - }, -}; - -var chartYears = new ApexCharts(document.querySelector("#area_chart-years"), optionsYears); -chartYears.render(); -} - -// Stacked Area Charts -var generateDayWiseTimeSeries = function (baseval, count, yrange) { - var i = 0; - var series = []; - while (i < count) { - var x = baseval; - var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; - - series.push([x, y]); - baseval += 86400000; - i++; - } - return series; -} - -var areachartstackedColors = getChartColorsArray("area_chart_stacked"); - -if(areachartstackedColors){ -var options = { - series: [{ - name: 'South', - data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'North', - data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 20 - }) - }, - { - name: 'Central', - data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 15 - }) - } - ], - chart: { - type: 'area', - height: 350, - stacked: true, - toolbar: { - show: false - }, - events: { - selection: function (chart, e) { - console.log(new Date(e.xaxis.min)) - } - }, - }, - colors: areachartstackedColors, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'smooth' - }, - fill: { - type: 'gradient', - gradient: { - opacityFrom: 0.6, - opacityTo: 0.8, - } - }, - legend: { - position: 'top', - horizontalAlign: 'left' - }, - xaxis: { - type: 'datetime' - }, -}; -var chart = new ApexCharts(document.querySelector("#area_chart_stacked"), options); -chart.render(); -} - -// Ireegular Time Series -var ts1 = 1388534400000; -var ts2 = 1388620800000; -var ts3 = 1389052800000; - -var dataSet = [ - [], - [], - [] -]; - -for (var i = 0; i < 12; i++) { - ts1 = ts1 + 86400000; - var innerArr = [ts1, dataSeries[2][i].value]; - dataSet[0].push(innerArr) -} -for (var i = 0; i < 18; i++) { - ts2 = ts2 + 86400000; - var innerArr = [ts2, dataSeries[1][i].value]; - dataSet[1].push(innerArr) -} -for (var i = 0; i < 12; i++) { - ts3 = ts3 + 86400000; - var innerArr = [ts3, dataSeries[0][i].value]; - dataSet[2].push(innerArr) -} - -//Irregular Timeseries Chart -var areachartirregularColors = getChartColorsArray("area_chart_irregular"); -if(areachartirregularColors){ -var options = { - series: [{ - name: 'PRODUCT A', - data: dataSet[0] - }, { - name: 'PRODUCT B', - data: dataSet[1] - }, { - name: 'PRODUCT C', - data: dataSet[2] - }], - chart: { - type: 'area', - stacked: false, - height: 350, - zoom: { - enabled: false - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false - }, - markers: { - size: 0, - }, - fill: { - type: 'gradient', - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [20, 100, 100, 100] - }, - }, - yaxis: { - labels: { - style: { - colors: '#8e8da4', - }, - offsetX: 0, - formatter: function (val) { - return (val / 1000000).toFixed(2); - }, - }, - axisBorder: { - show: false, - }, - axisTicks: { - show: false - } - }, - xaxis: { - type: 'datetime', - tickAmount: 8, - min: new Date("01/01/2014").getTime(), - max: new Date("01/20/2014").getTime(), - labels: { - rotate: -15, - rotateAlways: true, - formatter: function (val, timestamp) { - return moment(new Date(timestamp)).format("DD MMM YYYY") - } - } - }, - title: { - text: 'Irregular Data in Time Series', - align: 'left', - offsetX: 14, - style: { - fontWeight: 500, - }, - }, - tooltip: { - shared: true - }, - legend: { - position: 'top', - horizontalAlign: 'right', - offsetX: -10 - }, - colors: areachartirregularColors -}; - -var chart = new ApexCharts(document.querySelector("#area_chart_irregular"), options); -chart.render(); -} - -// Area Chart With Null Values Chart -var areachartirregularColors = getChartColorsArray("area-missing-null-value"); -if(areachartirregularColors){ -var options = { - series: [{ - name: 'Network', - data: [{ - x: 'Dec 23 2017', - y: null - }, - { - x: 'Dec 24 2017', - y: 44 - }, - { - x: 'Dec 25 2017', - y: 31 - }, - { - x: 'Dec 26 2017', - y: 38 - }, - { - x: 'Dec 27 2017', - y: null - }, - { - x: 'Dec 28 2017', - y: 32 - }, - { - x: 'Dec 29 2017', - y: 55 - }, - { - x: 'Dec 30 2017', - y: 51 - }, - { - x: 'Dec 31 2017', - y: 67 - }, - { - x: 'Jan 01 2018', - y: 22 - }, - { - x: 'Jan 02 2018', - y: 34 - }, - { - x: 'Jan 03 2018', - y: null - }, - { - x: 'Jan 04 2018', - y: null - }, - { - x: 'Jan 05 2018', - y: 11 - }, - { - x: 'Jan 06 2018', - y: 4 - }, - { - x: 'Jan 07 2018', - y: 15, - }, - { - x: 'Jan 08 2018', - y: null - }, - { - x: 'Jan 09 2018', - y: 9 - }, - { - x: 'Jan 10 2018', - y: 34 - }, - { - x: 'Jan 11 2018', - y: null - }, - { - x: 'Jan 12 2018', - y: null - }, - { - x: 'Jan 13 2018', - y: 13 - }, - { - x: 'Jan 14 2018', - y: null - } - ], - }], - chart: { - type: 'area', - height: 350, - animations: { - enabled: false - }, - zoom: { - enabled: false - }, - toolbar: { - show: false - }, - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight' - }, - fill: { - opacity: 0.8, - type: 'pattern', - pattern: { - style: ['verticalLines', 'horizontalLines'], - width: 5, - height: 6 - }, - }, - markers: { - size: 5, - hover: { - size: 9 - } - }, - title: { - text: 'Network Monitoring', - style: { - fontWeight: 500, - }, - }, - tooltip: { - intersect: true, - shared: false - }, - theme: { - palette: 'palette1' - }, - xaxis: { - type: 'datetime', - }, - yaxis: { - title: { - text: 'Bytes Received' - } - }, - colors: areachartirregularColors -}; - -var chart = new ApexCharts(document.querySelector("#area-missing-null-value"), options); -chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-bar.init.js b/src/main/resources/static/assets/js/pages/apexcharts-bar.init.js deleted file mode 100644 index aadb5c5..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-bar.init.js +++ /dev/null @@ -1,786 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Bar Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Basic Bar chart -var chartBarColors = getChartColorsArray("bar_chart"); -if(chartBarColors){ -var options = { - chart: { - height: 350, - type: 'bar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - } - }, - dataLabels: { - enabled: false - }, - series: [{ - data: [380, 430, 450, 475, 550, 584, 780, 1100, 1220, 1365] - }], - colors: chartBarColors, - grid: { - borderColor: '#f1f1f1', - }, - xaxis: { - categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan', 'United States', 'China', 'Germany'], - } -} -var chart = new ApexCharts(document.querySelector("#bar_chart"),options); -chart.render(); -} - -// Custom DataLabels Bar -var chartDatalabelsBarColors = getChartColorsArray("custom_datalabels_bar"); -if(chartDatalabelsBarColors){ -var options = { - series: [{ - data: [400, 430, 448, 470, 540, 580, 690, 1100, 1200, 1380] - }], - chart: { - type: 'bar', - height: 350, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - barHeight: '100%', - distributed: true, - horizontal: true, - dataLabels: { - position: 'bottom' - }, - } - }, - colors: chartDatalabelsBarColors, - dataLabels: { - enabled: true, - textAnchor: 'start', - style: { - colors: ['#fff'] - }, - formatter: function (val, opt) { - return opt.w.globals.labels[opt.dataPointIndex] + ": " + val - }, - offsetX: 0, - dropShadow: { - enabled: false - } - }, - stroke: { - width: 1, - colors: ['#fff'] - }, - xaxis: { - categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan', - 'United States', 'China', 'India' - ], - }, - yaxis: { - labels: { - show: false - } - }, - title: { - text: 'Custom DataLabels', - align: 'center', - floating: true, - style: { - fontWeight: 500, - }, - }, - subtitle: { - text: 'Category Names as DataLabels inside bars', - align: 'center', - }, - tooltip: { - theme: 'dark', - x: { - show: false - }, - y: { - title: { - formatter: function () { - return '' - } - } - } - } -}; - -var chart = new ApexCharts(document.querySelector("#custom_datalabels_bar"), options); -chart.render(); -} - -// Stacked Bar Charts -var chartStackedBarColors = getChartColorsArray("stacked_bar"); -if(chartStackedBarColors){ -var options = { - series: [{ - name: 'Marine Sprite', - data: [44, 55, 41, 37, 22, 43, 21] - }, { - name: 'Striking Calf', - data: [53, 32, 33, 52, 13, 43, 32] - }, { - name: 'Tank Picture', - data: [12, 17, 11, 9, 15, 11, 20] - }, { - name: 'Bucket Slope', - data: [9, 7, 5, 8, 6, 9, 4] - }, { - name: 'Reborn Kid', - data: [25, 12, 19, 32, 25, 24, 10] - }], - chart: { - type: 'bar', - height: 350, - stacked: true, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - }, - }, - stroke: { - width: 1, - colors: ['#fff'] - }, - title: { - text: 'Fiction Books Sales', - style: { - fontWeight: 500, - }, - }, - xaxis: { - categories: [2008, 2009, 2010, 2011, 2012, 2013, 2014], - labels: { - formatter: function (val) { - return val + "K" - } - } - }, - yaxis: { - title: { - text: undefined - }, - }, - tooltip: { - y: { - formatter: function (val) { - return val + "K" - } - } - }, - fill: { - opacity: 1 - }, - legend: { - position: 'top', - horizontalAlign: 'left', - offsetX: 40 - }, - colors: chartStackedBarColors -}; - -var chart = new ApexCharts(document.querySelector("#stacked_bar"), options); -chart.render(); -} - -// Stacked Bars 100 -var chartStackedBar100Colors = getChartColorsArray("stacked_bar_100"); -if(chartStackedBar100Colors){ -var options = { - series: [{ - name: 'Marine Sprite', - data: [44, 55, 41, 37, 22, 43, 21] - }, { - name: 'Striking Calf', - data: [53, 32, 33, 52, 13, 43, 32] - }, { - name: 'Tank Picture', - data: [12, 17, 11, 9, 15, 11, 20] - }, { - name: 'Bucket Slope', - data: [9, 7, 5, 8, 6, 9, 4] - }, { - name: 'Reborn Kid', - data: [25, 12, 19, 32, 25, 24, 10] - }], - chart: { - type: 'bar', - height: 350, - stacked: true, - stackType: '100%', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - }, - }, - stroke: { - width: 1, - colors: ['#fff'] - }, - title: { - text: '100% Stacked Bar', - style: { - fontWeight: 500, - }, - }, - xaxis: { - categories: [2008, 2009, 2010, 2011, 2012, 2013, 2014], - }, - tooltip: { - y: { - formatter: function (val) { - return val + "K" - } - } - }, - fill: { - opacity: 1 - - }, - legend: { - position: 'top', - horizontalAlign: 'left', - offsetX: 40 - }, - colors: chartStackedBar100Colors -}; - -var chart = new ApexCharts(document.querySelector("#stacked_bar_100"), options); -chart.render(); -} - -// Bar with Negative Values -var chartNegativeBarColors = getChartColorsArray("negative_bars"); -if(chartNegativeBarColors){ -var options = { - series: [{ - name: 'Males', - data: [0.4, 0.65, 0.76, 0.88, 1.5, 2.1, 2.9, 3.8, 3.9, 4.2, 4, 4.3, 4.1, 4.2, 4.5, - 3.9, 3.5, 3 - ] - }, - { - name: 'Females', - data: [-0.8, -1.05, -1.06, -1.18, -1.4, -2.2, -2.85, -3.7, -3.96, -4.22, -4.3, -4.4, - -4.1, -4, -4.1, -3.4, -3.1, -2.8 - ] - } - ], - chart: { - type: 'bar', - height: 360, - stacked: true, - toolbar: { - show: false, - } - }, - colors: chartNegativeBarColors, - plotOptions: { - bar: { - horizontal: true, - barHeight: '80%', - }, - }, - dataLabels: { - enabled: false - }, - stroke: { - width: 1, - colors: ["#fff"] - }, - - grid: { - xaxis: { - lines: { - show: false - } - } - }, - yaxis: { - min: -5, - max: 5, - title: { - text: 'Age', - style: { - fontWeight: 500, - }, - }, - }, - tooltip: { - shared: false, - x: { - formatter: function (val) { - return val - } - }, - y: { - formatter: function (val) { - return Math.abs(val) + "%" - } - } - }, - title: { - text: 'Mauritius population pyramid 2011', - style: { - fontWeight: 500, - }, - }, - xaxis: { - categories: ['85+', '80-84', '75-79', '70-74', '65-69', '60-64', '55-59', '50-54', - '45-49', '40-44', '35-39', '30-34', '25-29', '20-24', '15-19', '10-14', '5-9', - '0-4' - ], - title: { - text: 'Percent' - }, - labels: { - formatter: function (val) { - return Math.abs(Math.round(val)) + "%" - } - } - }, -}; - -var chart = new ApexCharts(document.querySelector("#negative_bars"), options); -chart.render(); -} - -// Bar with Markers -var chartBarMarkersColors = getChartColorsArray("bar_markers"); -if(chartBarMarkersColors){ -var options = { - series: [{ - name: 'Actual', - data: [{ - x: '2011', - y: 12, - goals: [{ - name: 'Expected', - value: 14, - strokeWidth: 5, - strokeColor: '#564ab1' - }] - }, - { - x: '2012', - y: 44, - goals: [{ - name: 'Expected', - value: 54, - strokeWidth: 5, - strokeColor: '#564ab1' - }] - }, - { - x: '2013', - y: 54, - goals: [{ - name: 'Expected', - value: 52, - strokeWidth: 5, - strokeColor: '#564ab1' - }] - }, - { - x: '2014', - y: 66, - goals: [{ - name: 'Expected', - value: 65, - strokeWidth: 5, - strokeColor: '#564ab1' - }] - }, - { - x: '2015', - y: 81, - goals: [{ - name: 'Expected', - value: 66, - strokeWidth: 5, - strokeColor: '#564ab1' - }] - }, - { - x: '2016', - y: 67, - goals: [{ - name: 'Expected', - value: 70, - strokeWidth: 5, - strokeColor: '#564ab1' - }] - } - ] - }], - chart: { - height: 350, - type: 'bar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - } - }, - colors: chartBarMarkersColors, - dataLabels: { - formatter: function (val, opt) { - var goals = - opt.w.config.series[opt.seriesIndex].data[opt.dataPointIndex] - .goals - - // if (goals && goals.length) { - // return `${val} / ${goals[0].value}` - // } - return val - } - }, - legend: { - show: true, - showForSingleSeries: true, - customLegendItems: ['Actual', 'Expected'], - markers: { - fillColors: chartBarMarkersColors - } - } -}; - -var chart = new ApexCharts(document.querySelector("#bar_markers"), options); -chart.render(); -} - -// Reversed Bar Chart -var chartBarReversedColors = getChartColorsArray("reversed_bars"); -if(chartBarReversedColors){ -var options = { - series: [{ - data: [400, 430, 448, 470, 540, 580, 690] - }], - chart: { - type: 'bar', - height: 350, - toolbar: { - show: false, - } - }, - annotations: { - xaxis: [{ - x: 500, - borderColor: '#038edc', - label: { - borderColor: '#038edc', - style: { - color: '#fff', - background: '#038edc', - }, - text: 'X annotation', - } - }], - yaxis: [{ - y: 'July', - y2: 'September', - label: { - text: 'Y annotation' - } - }] - }, - colors: chartBarReversedColors, - plotOptions: { - bar: { - horizontal: true, - } - }, - dataLabels: { - enabled: true - }, - xaxis: { - categories: ['June', 'July', 'August', 'September', 'October', 'November', 'December'], - }, - grid: { - xaxis: { - lines: { - show: true - } - } - }, - yaxis: { - reversed: true, - axisTicks: { - show: true - } - } -}; - -var chart = new ApexCharts(document.querySelector("#reversed_bars"), options); -chart.render(); -} - -// Patterned Charts -var chartPatternedColors = getChartColorsArray("patterned_bars"); -if(chartPatternedColors){ -var options = { - series: [{ - name: 'Marine Sprite', - data: [44, 55, 41, 37, 22, 43, 21] - }, { - name: 'Striking Calf', - data: [53, 32, 33, 52, 13, 43, 32] - }, { - name: 'Tank Picture', - data: [12, 17, 11, 9, 15, 11, 20] - }, { - name: 'Bucket Slope', - data: [9, 7, 5, 8, 6, 9, 4] - }], - chart: { - type: 'bar', - height: 350, - stacked: true, - dropShadow: { - enabled: true, - blur: 1, - opacity: 0.25 - }, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - barHeight: '60%', - }, - }, - dataLabels: { - enabled: false - }, - stroke: { - width: 2, - }, - title: { - text: 'Compare Sales Strategy', - style: { - fontWeight: 500, - }, - }, - xaxis: { - categories: [2008, 2009, 2010, 2011, 2012, 2013, 2014], - }, - yaxis: { - title: { - text: undefined - }, - }, - tooltip: { - shared: false, - y: { - formatter: function (val) { - return val + "K" - } - } - }, - fill: { - type: 'pattern', - opacity: 1, - pattern: { - style: ['circles', 'slantedLines', 'verticalLines', 'horizontalLines'], // string or array of strings - - } - }, - states: { - hover: { - filter: 'none' - } - }, - legend: { - position: 'right', - offsetY: 40 - }, - colors: chartPatternedColors -}; - -var chart = new ApexCharts(document.querySelector("#patterned_bars"), options); -chart.render(); -} - -// Groups Bar Charts -var chartGroupbarColors = getChartColorsArray("grouped_bar"); -if(chartGroupbarColors){ -var options = { - series: [{ - data: [44, 55, 41, 64, 22, 43, 21] - }, { - data: [53, 32, 33, 52, 13, 44, 32] - }], - chart: { - type: 'bar', - height: 410, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - dataLabels: { - position: 'top', - }, - } - }, - dataLabels: { - enabled: true, - offsetX: -6, - style: { - fontSize: '12px', - colors: ['#fff'] - } - }, - stroke: { - show: true, - width: 1, - colors: ['#fff'] - }, - tooltip: { - shared: true, - intersect: false - }, - xaxis: { - categories: [2001, 2002, 2003, 2004, 2005, 2006, 2007], - }, - colors: chartGroupbarColors -}; - -var chart = new ApexCharts(document.querySelector("#grouped_bar"), options); -chart.render(); -} - -// Bar with Images - -var options = { - series: [{ - name: 'coins', - data: [2, 4, 3, 4, 3, 5, 5, 6.5, 6, 5, 4, 5, 8, 7, 7, 8, 8, 10, 9, 9, 12, 12, - 11, 12, 13, 14, 16, 14, 15, 17, 19, 21 - ] - }], - chart: { - type: 'bar', - height: 410, - animations: { - enabled: false - }, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - barHeight: '100%', - - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - colors: ["#fff"], - width: 0.2 - }, - labels: Array.apply(null, { - length: 39 - }).map(function (el, index) { - return index + 1; - }), - yaxis: { - axisBorder: { - show: false - }, - axisTicks: { - show: false - }, - labels: { - show: false - }, - title: { - text: 'Weight', - }, - }, - grid: { - position: 'back' - }, - title: { - text: 'Paths filled by clipped image', - align: 'right', - offsetY: 30, - style: { - fontWeight: 500, - }, - }, - fill: { - type: 'image', - opacity: 0.87, - image: { - src: ['./assets/images/small/img-4.jpg'], - width: 466, - height: 406 - } - }, -}; - -if(document.querySelector("#bar_images")){ - var chart = new ApexCharts(document.querySelector("#bar_images"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-boxplot.init.js b/src/main/resources/static/assets/js/pages/apexcharts-boxplot.init.js deleted file mode 100644 index a621d48..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-boxplot.init.js +++ /dev/null @@ -1,268 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Boxplot Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -var chartBoxBasicColors = getChartColorsArray("basic_box"); -if(chartBoxBasicColors){ -var options = { - series: [{ - type: 'boxPlot', - data: [{ - x: 'Jan 2015', - y: [54, 66, 69, 75, 88] - }, - { - x: 'Jan 2016', - y: [43, 65, 69, 76, 81] - }, - { - x: 'Jan 2017', - y: [31, 39, 45, 51, 59] - }, - { - x: 'Jan 2018', - y: [39, 46, 55, 65, 71] - }, - { - x: 'Jan 2019', - y: [29, 31, 35, 39, 44] - }, - { - x: 'Jan 2020', - y: [41, 49, 58, 61, 67] - }, - { - x: 'Jan 2021', - y: [54, 59, 66, 71, 88] - } - ] - }], - chart: { - type: 'boxPlot', - height: 350, - toolbar: { - show: false - } - }, - title: { - text: 'Basic BoxPlot Chart', - align: 'left', - style: { - fontWeight: 500, - }, - }, - plotOptions: { - boxPlot: { - colors: { - upper: chartBoxBasicColors[0], - lower: chartBoxBasicColors[1] - } - } - }, - stroke: { - colors: [chartBoxBasicColors[2]] - }, - }; - -var chart = new ApexCharts(document.querySelector("#basic_box"), options); -chart.render(); -} - -// Boxplot-Scatter -var chartBoxPlotColors = getChartColorsArray("box_plot"); -if(chartBoxPlotColors){ -var options = { - series: [{ - name: 'Box', - type: 'boxPlot', - data: [{ - x: new Date('2017-01-01').getTime(), - y: [54, 66, 69, 75, 88] - }, - { - x: new Date('2018-01-01').getTime(), - y: [43, 65, 69, 76, 81] - }, - { - x: new Date('2019-01-01').getTime(), - y: [31, 39, 45, 51, 59] - }, - { - x: new Date('2020-01-01').getTime(), - y: [39, 46, 55, 65, 71] - }, - { - x: new Date('2021-01-01').getTime(), - y: [29, 31, 35, 39, 44] - } - ] - }, - { - name: 'Outliers', - type: 'scatter', - data: [{ - x: new Date('2017-01-01').getTime(), - y: 32 - }, - { - x: new Date('2018-01-01').getTime(), - y: 25 - }, - { - x: new Date('2019-01-01').getTime(), - y: 64 - }, - { - x: new Date('2020-01-01').getTime(), - y: 27 - }, - { - x: new Date('2020-01-01').getTime(), - y: 78 - }, - { - x: new Date('2021-01-01').getTime(), - y: 15 - } - ] - } - ], - chart: { - type: 'boxPlot', - height: 350, - toolbar: { - show: false - } - }, - colors: [chartBoxPlotColors[0], chartBoxPlotColors[1]], - title: { - text: 'BoxPlot - Scatter Chart', - align: 'left', - style: { - fontWeight: 500, - }, - }, - xaxis: { - type: 'datetime', - tooltip: { - formatter: function (val) { - return new Date(val).getFullYear() - } - } - }, - plotOptions: { - boxPlot: { - colors: { - upper: chartBoxPlotColors[2], - lower: chartBoxPlotColors[3] - } - } - }, - stroke: { - colors: [chartBoxPlotColors[4]] - }, - tooltip: { - shared: false, - intersect: true - } - }; - - var chart = new ApexCharts(document.querySelector("#box_plot"), options); - chart.render(); -} - -// box_plot_hori -var chartBoxPlotHoriColors = getChartColorsArray("box_plot_hori"); -if (chartBoxPlotHoriColors) { - var options = { - series: [ - { - data: [ - { - x: 'Category A', - y: [54, 66, 69, 75, 88] - }, - { - x: 'Category B', - y: [43, 65, 69, 76, 81] - }, - { - x: 'Category C', - y: [31, 39, 45, 51, 59] - }, - { - x: 'Category D', - y: [39, 46, 55, 65, 71] - }, - { - x: 'Category E', - y: [29, 31, 35, 39, 44] - }, - { - x: 'Category F', - y: [41, 49, 58, 61, 67] - }, - { - x: 'Category G', - y: [54, 59, 66, 71, 88] - } - ] - } - ], - chart: { - type: 'boxPlot', - height: 350, - toolbar: { - show: false - } - }, - plotOptions: { - bar: { - horizontal: true, - barHeight: '50%' - }, - boxPlot: { - colors: { - upper: chartBoxPlotHoriColors[0], - lower: chartBoxPlotHoriColors[1] - } - } - }, - stroke: { - colors: [chartBoxPlotHoriColors[2]] - }, - }; - - var chart = new ApexCharts(document.querySelector("#box_plot_hori"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-bubble.init.js b/src/main/resources/static/assets/js/pages/apexcharts-bubble.init.js deleted file mode 100644 index 7ae4110..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-bubble.init.js +++ /dev/null @@ -1,189 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Bubble Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function(value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } - } -} - - -// Bubble Charts Generate Data -function generateData(baseval, count, yrange) { - var i = 0; - var series = []; - while (i < count) { - var x = Math.floor(Math.random() * (750 - 1 + 1)) + 1;; - var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; - var z = Math.floor(Math.random() * (75 - 15 + 1)) + 15; - - series.push([x, y, z]); - baseval += 86400000; - i++; - } - return series; -} - -// Simple Bubble -var chartBubbleSimpleColors = getChartColorsArray("simple_bubble"); -if (chartBubbleSimpleColors) { - var options = { - series: [{ - name: 'Bubble1', - data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'Bubble2', - data: generateData(new Date('12 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'Bubble3', - data: generateData(new Date('13 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'Bubble4', - data: generateData(new Date('14 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - } - ], - chart: { - height: 350, - type: 'bubble', - toolbar: { - show: false, - } - }, - dataLabels: { - enabled: false - }, - fill: { - opacity: 0.8 - }, - title: { - text: 'Simple Bubble Chart', - style: { - fontWeight: 500, - }, - }, - xaxis: { - tickAmount: 12, - type: 'category', - }, - yaxis: { - max: 70 - }, - colors: chartBubbleSimpleColors - }; - - var chart = new ApexCharts(document.querySelector("#simple_bubble"), options); - chart.render(); -} - -// 3D Bubble -var chartBubbleColors = getChartColorsArray("bubble_chart"); -if (chartBubbleColors) { - var options = { - series: [{ - name: 'Product1', - data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'Product2', - data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'Product3', - data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'Product4', - data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - } - ], - chart: { - height: 350, - type: 'bubble', - toolbar: { - show: false, - } - }, - dataLabels: { - enabled: false - }, - fill: { - type: 'gradient', - }, - title: { - text: '3D Bubble Chart', - style: { - fontWeight: 500, - }, - }, - xaxis: { - tickAmount: 12, - type: 'datetime', - labels: { - rotate: 0, - } - }, - yaxis: { - max: 70 - }, - theme: { - palette: 'palette2' - }, - colors: chartBubbleColors - }; - - var chart = new ApexCharts(document.querySelector("#bubble_chart"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-candlestick.init.js b/src/main/resources/static/assets/js/pages/apexcharts-candlestick.init.js deleted file mode 100644 index f28182c..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-candlestick.init.js +++ /dev/null @@ -1,988 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Candlestick Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function(value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } - } -} - - -// Basic Candlestick Charts -var chartCandlestickBasicColors = getChartColorsArray("basic_candlestick"); -if (chartCandlestickBasicColors) { - var options = { - series: [{ - data: [{ - x: new Date(1538778600000), - y: [6629.81, 6650.5, 6623.04, 6633.33] - }, - { - x: new Date(1538780400000), - y: [6632.01, 6643.59, 6620, 6630.11] - }, - { - x: new Date(1538782200000), - y: [6630.71, 6648.95, 6623.34, 6635.65] - }, - { - x: new Date(1538784000000), - y: [6635.65, 6651, 6629.67, 6638.24] - }, - { - x: new Date(1538785800000), - y: [6638.24, 6640, 6620, 6624.47] - }, - { - x: new Date(1538787600000), - y: [6624.53, 6636.03, 6621.68, 6624.31] - }, - { - x: new Date(1538789400000), - y: [6624.61, 6632.2, 6617, 6626.02] - }, - { - x: new Date(1538791200000), - y: [6627, 6627.62, 6584.22, 6603.02] - }, - { - x: new Date(1538793000000), - y: [6605, 6608.03, 6598.95, 6604.01] - }, - { - x: new Date(1538794800000), - y: [6604.5, 6614.4, 6602.26, 6608.02] - }, - { - x: new Date(1538796600000), - y: [6608.02, 6610.68, 6601.99, 6608.91] - }, - { - x: new Date(1538798400000), - y: [6608.91, 6618.99, 6608.01, 6612] - }, - { - x: new Date(1538800200000), - y: [6612, 6615.13, 6605.09, 6612] - }, - { - x: new Date(1538802000000), - y: [6612, 6624.12, 6608.43, 6622.95] - }, - { - x: new Date(1538803800000), - y: [6623.91, 6623.91, 6615, 6615.67] - }, - { - x: new Date(1538805600000), - y: [6618.69, 6618.74, 6610, 6610.4] - }, - { - x: new Date(1538807400000), - y: [6611, 6622.78, 6610.4, 6614.9] - }, - { - x: new Date(1538809200000), - y: [6614.9, 6626.2, 6613.33, 6623.45] - }, - { - x: new Date(1538811000000), - y: [6623.48, 6627, 6618.38, 6620.35] - }, - { - x: new Date(1538812800000), - y: [6619.43, 6620.35, 6610.05, 6615.53] - }, - { - x: new Date(1538814600000), - y: [6615.53, 6617.93, 6610, 6615.19] - }, - { - x: new Date(1538816400000), - y: [6615.19, 6621.6, 6608.2, 6620] - }, - { - x: new Date(1538818200000), - y: [6619.54, 6625.17, 6614.15, 6620] - }, - { - x: new Date(1538820000000), - y: [6620.33, 6634.15, 6617.24, 6624.61] - }, - { - x: new Date(1538821800000), - y: [6625.95, 6626, 6611.66, 6617.58] - }, - { - x: new Date(1538823600000), - y: [6619, 6625.97, 6595.27, 6598.86] - }, - { - x: new Date(1538825400000), - y: [6598.86, 6598.88, 6570, 6587.16] - }, - { - x: new Date(1538827200000), - y: [6588.86, 6600, 6580, 6593.4] - }, - { - x: new Date(1538829000000), - y: [6593.99, 6598.89, 6585, 6587.81] - }, - { - x: new Date(1538830800000), - y: [6587.81, 6592.73, 6567.14, 6578] - }, - { - x: new Date(1538832600000), - y: [6578.35, 6581.72, 6567.39, 6579] - }, - { - x: new Date(1538834400000), - y: [6579.38, 6580.92, 6566.77, 6575.96] - }, - { - x: new Date(1538836200000), - y: [6575.96, 6589, 6571.77, 6588.92] - }, - { - x: new Date(1538838000000), - y: [6588.92, 6594, 6577.55, 6589.22] - }, - { - x: new Date(1538839800000), - y: [6589.3, 6598.89, 6589.1, 6596.08] - }, - { - x: new Date(1538841600000), - y: [6597.5, 6600, 6588.39, 6596.25] - }, - { - x: new Date(1538843400000), - y: [6598.03, 6600, 6588.73, 6595.97] - }, - { - x: new Date(1538845200000), - y: [6595.97, 6602.01, 6588.17, 6602] - }, - { - x: new Date(1538847000000), - y: [6602, 6607, 6596.51, 6599.95] - }, - { - x: new Date(1538848800000), - y: [6600.63, 6601.21, 6590.39, 6591.02] - }, - { - x: new Date(1538850600000), - y: [6591.02, 6603.08, 6591, 6591] - }, - { - x: new Date(1538852400000), - y: [6591, 6601.32, 6585, 6592] - }, - { - x: new Date(1538854200000), - y: [6593.13, 6596.01, 6590, 6593.34] - }, - { - x: new Date(1538856000000), - y: [6593.34, 6604.76, 6582.63, 6593.86] - }, - { - x: new Date(1538857800000), - y: [6593.86, 6604.28, 6586.57, 6600.01] - }, - { - x: new Date(1538859600000), - y: [6601.81, 6603.21, 6592.78, 6596.25] - }, - { - x: new Date(1538861400000), - y: [6596.25, 6604.2, 6590, 6602.99] - }, - { - x: new Date(1538863200000), - y: [6602.99, 6606, 6584.99, 6587.81] - }, - { - x: new Date(1538865000000), - y: [6587.81, 6595, 6583.27, 6591.96] - }, - { - x: new Date(1538866800000), - y: [6591.97, 6596.07, 6585, 6588.39] - }, - { - x: new Date(1538868600000), - y: [6587.6, 6598.21, 6587.6, 6594.27] - }, - { - x: new Date(1538870400000), - y: [6596.44, 6601, 6590, 6596.55] - }, - { - x: new Date(1538872200000), - y: [6598.91, 6605, 6596.61, 6600.02] - }, - { - x: new Date(1538874000000), - y: [6600.55, 6605, 6589.14, 6593.01] - }, - { - x: new Date(1538875800000), - y: [6593.15, 6605, 6592, 6603.06] - }, - { - x: new Date(1538877600000), - y: [6603.07, 6604.5, 6599.09, 6603.89] - }, - { - x: new Date(1538879400000), - y: [6604.44, 6604.44, 6600, 6603.5] - }, - { - x: new Date(1538881200000), - y: [6603.5, 6603.99, 6597.5, 6603.86] - }, - { - x: new Date(1538883000000), - y: [6603.85, 6605, 6600, 6604.07] - }, - { - x: new Date(1538884800000), - y: [6604.98, 6606, 6604.07, 6606] - }, - ] - }], - chart: { - type: 'candlestick', - height: 350, - toolbar: { - show: false, - } - }, - plotOptions: { - candlestick: { - colors: { - upward: chartCandlestickBasicColors[0], - downward: chartCandlestickBasicColors[1], - } - } - }, - title: { - text: 'CandleStick Chart', - align: 'left', - style: { - fontWeight: 500, - }, - }, - xaxis: { - type: 'datetime' - }, - yaxis: { - tooltip: { - enabled: true - } - }, - }; - - var chart = new ApexCharts(document.querySelector("#basic_candlestick"), options); - chart.render(); -} - -// Candlestick Synced with Brush Chart (Combo) -var chartCandlestickComboColors = getChartColorsArray("combo_candlestick"); -if (chartCandlestickComboColors) { - var options = { - series: [{ - data: seriesData - }], - chart: { - type: 'candlestick', - height: 200, - id: 'candles', - toolbar: { - autoSelected: 'pan', - show: false - }, - zoom: { - enabled: false - }, - }, - plotOptions: { - candlestick: { - colors: { - upward: chartCandlestickComboColors[0], - downward: chartCandlestickComboColors[1] - } - } - }, - xaxis: { - type: 'datetime' - } - }; - - var chart = new ApexCharts(document.querySelector("#combo_candlestick"), options); - chart.render(); -} -var chartCandlestickComboColors = getChartColorsArray("combo_candlestick_chart"); -if (chartCandlestickComboColors) { - var optionsBar = { - series: [{ - name: 'volume', - data: seriesDataLinear - }], - chart: { - height: 150, - type: 'bar', - brush: { - enabled: true, - target: 'candles' - }, - selection: { - enabled: true, - xaxis: { - min: new Date('20 Jan 2017').getTime(), - max: new Date('10 Dec 2017').getTime() - }, - fill: { - color: '#ccc', - opacity: 0.4 - }, - stroke: { - color: '#0d47a1', - } - }, - }, - dataLabels: { - enabled: false - }, - plotOptions: { - bar: { - columnWidth: '80%', - colors: { - ranges: [{ - from: -1000, - to: 0, - color: '#f1734f' - }, { - from: 1, - to: 10000, - color: '#f7cc53' - }], - - }, - } - }, - stroke: { - width: 0 - }, - xaxis: { - type: 'datetime', - axisBorder: { - offsetX: 13 - } - }, - yaxis: { - labels: { - show: false - } - } - }; - - var chartBar = new ApexCharts(document.querySelector("#combo_candlestick_chart"), optionsBar); - chartBar.render(); -} - - -// Category X-axis -var chartCandlestickCategoryColors = getChartColorsArray("category_candlestick"); -if (chartCandlestickCategoryColors) { - var options = { - series: [{ - name: 'candle', - data: [{ - x: new Date(1538778600000), - y: [6629.81, 6650.5, 6623.04, 6633.33] - }, - { - x: new Date(1538780400000), - y: [6632.01, 6643.59, 6620, 6630.11] - }, - { - x: new Date(1538782200000), - y: [6630.71, 6648.95, 6623.34, 6635.65] - }, - { - x: new Date(1538784000000), - y: [6635.65, 6651, 6629.67, 6638.24] - }, - { - x: new Date(1538785800000), - y: [6638.24, 6640, 6620, 6624.47] - }, - { - x: new Date(1538787600000), - y: [6624.53, 6636.03, 6621.68, 6624.31] - }, - { - x: new Date(1538789400000), - y: [6624.61, 6632.2, 6617, 6626.02] - }, - { - x: new Date(1538791200000), - y: [6627, 6627.62, 6584.22, 6603.02] - }, - { - x: new Date(1538793000000), - y: [6605, 6608.03, 6598.95, 6604.01] - }, - { - x: new Date(1538794800000), - y: [6604.5, 6614.4, 6602.26, 6608.02] - }, - { - x: new Date(1538796600000), - y: [6608.02, 6610.68, 6601.99, 6608.91] - }, - { - x: new Date(1538798400000), - y: [6608.91, 6618.99, 6608.01, 6612] - }, - { - x: new Date(1538800200000), - y: [6612, 6615.13, 6605.09, 6612] - }, - { - x: new Date(1538802000000), - y: [6612, 6624.12, 6608.43, 6622.95] - }, - { - x: new Date(1538803800000), - y: [6623.91, 6623.91, 6615, 6615.67] - }, - { - x: new Date(1538805600000), - y: [6618.69, 6618.74, 6610, 6610.4] - }, - { - x: new Date(1538807400000), - y: [6611, 6622.78, 6610.4, 6614.9] - }, - { - x: new Date(1538809200000), - y: [6614.9, 6626.2, 6613.33, 6623.45] - }, - { - x: new Date(1538811000000), - y: [6623.48, 6627, 6618.38, 6620.35] - }, - { - x: new Date(1538812800000), - y: [6619.43, 6620.35, 6610.05, 6615.53] - }, - { - x: new Date(1538814600000), - y: [6615.53, 6617.93, 6610, 6615.19] - }, - { - x: new Date(1538816400000), - y: [6615.19, 6621.6, 6608.2, 6620] - }, - { - x: new Date(1538818200000), - y: [6619.54, 6625.17, 6614.15, 6620] - }, - { - x: new Date(1538820000000), - y: [6620.33, 6634.15, 6617.24, 6624.61] - }, - { - x: new Date(1538821800000), - y: [6625.95, 6626, 6611.66, 6617.58] - }, - { - x: new Date(1538823600000), - y: [6619, 6625.97, 6595.27, 6598.86] - }, - { - x: new Date(1538825400000), - y: [6598.86, 6598.88, 6570, 6587.16] - }, - { - x: new Date(1538827200000), - y: [6588.86, 6600, 6580, 6593.4] - }, - { - x: new Date(1538829000000), - y: [6593.99, 6598.89, 6585, 6587.81] - }, - { - x: new Date(1538830800000), - y: [6587.81, 6592.73, 6567.14, 6578] - }, - { - x: new Date(1538832600000), - y: [6578.35, 6581.72, 6567.39, 6579] - }, - { - x: new Date(1538834400000), - y: [6579.38, 6580.92, 6566.77, 6575.96] - }, - { - x: new Date(1538836200000), - y: [6575.96, 6589, 6571.77, 6588.92] - }, - { - x: new Date(1538838000000), - y: [6588.92, 6594, 6577.55, 6589.22] - }, - { - x: new Date(1538839800000), - y: [6589.3, 6598.89, 6589.1, 6596.08] - }, - { - x: new Date(1538841600000), - y: [6597.5, 6600, 6588.39, 6596.25] - }, - { - x: new Date(1538843400000), - y: [6598.03, 6600, 6588.73, 6595.97] - }, - { - x: new Date(1538845200000), - y: [6595.97, 6602.01, 6588.17, 6602] - }, - { - x: new Date(1538847000000), - y: [6602, 6607, 6596.51, 6599.95] - }, - { - x: new Date(1538848800000), - y: [6600.63, 6601.21, 6590.39, 6591.02] - }, - { - x: new Date(1538850600000), - y: [6591.02, 6603.08, 6591, 6591] - }, - { - x: new Date(1538852400000), - y: [6591, 6601.32, 6585, 6592] - }, - { - x: new Date(1538854200000), - y: [6593.13, 6596.01, 6590, 6593.34] - }, - { - x: new Date(1538856000000), - y: [6593.34, 6604.76, 6582.63, 6593.86] - }, - { - x: new Date(1538857800000), - y: [6593.86, 6604.28, 6586.57, 6600.01] - }, - { - x: new Date(1538859600000), - y: [6601.81, 6603.21, 6592.78, 6596.25] - }, - { - x: new Date(1538861400000), - y: [6596.25, 6604.2, 6590, 6602.99] - }, - { - x: new Date(1538863200000), - y: [6602.99, 6606, 6584.99, 6587.81] - }, - { - x: new Date(1538865000000), - y: [6587.81, 6595, 6583.27, 6591.96] - }, - { - x: new Date(1538866800000), - y: [6591.97, 6596.07, 6585, 6588.39] - }, - { - x: new Date(1538868600000), - y: [6587.6, 6598.21, 6587.6, 6594.27] - }, - { - x: new Date(1538870400000), - y: [6596.44, 6601, 6590, 6596.55] - }, - { - x: new Date(1538872200000), - y: [6598.91, 6605, 6596.61, 6600.02] - }, - { - x: new Date(1538874000000), - y: [6600.55, 6605, 6589.14, 6593.01] - }, - { - x: new Date(1538875800000), - y: [6593.15, 6605, 6592, 6603.06] - }, - { - x: new Date(1538877600000), - y: [6603.07, 6604.5, 6599.09, 6603.89] - }, - { - x: new Date(1538879400000), - y: [6604.44, 6604.44, 6600, 6603.5] - }, - { - x: new Date(1538881200000), - y: [6603.5, 6603.99, 6597.5, 6603.86] - }, - { - x: new Date(1538883000000), - y: [6603.85, 6605, 6600, 6604.07] - }, - { - x: new Date(1538884800000), - y: [6604.98, 6606, 6604.07, 6606] - }, - ] - }], - chart: { - height: 350, - type: 'candlestick', - toolbar: { - show: false - }, - }, - title: { - text: 'CandleStick Chart - Category X-axis', - align: 'left', - style: { - fontWeight: 500, - }, - }, - plotOptions: { - candlestick: { - colors: { - upward: chartCandlestickCategoryColors[0], - downward: chartCandlestickCategoryColors[1], - } - } - }, - annotations: { - xaxis: [{ - x: 'Oct 06 14:00', - borderColor: chartCandlestickCategoryColors[0], - label: { - borderColor: chartCandlestickCategoryColors[1], - style: { - fontSize: '12px', - color: '#fff', - background: chartCandlestickCategoryColors[1] - }, - orientation: 'horizontal', - offsetY: 7, - text: 'Annotation Test' - } - }] - }, - tooltip: { - enabled: true, - }, - xaxis: { - type: 'category', - labels: { - formatter: function(val) { - return dayjs(val).format('MMM DD HH:mm') - } - } - }, - yaxis: { - tooltip: { - enabled: true - } - } - }; - - var chart = new ApexCharts(document.querySelector("#category_candlestick"), options); - chart.render(); -} - -// Candlestick with line -'use strict'; - -// Candlestick with line -var chartCandlestickLineColors = getChartColorsArray("candlestick_with_line"); -if (chartCandlestickLineColors) { - var options = { - series: [{ - name: 'line', - type: 'line', - data: [{ - x: new Date(1538778600000), - y: 6604 - }, { - x: new Date(1538782200000), - y: 6602 - }, { - x: new Date(1538814600000), - y: 6607 - }, { - x: new Date(1538884800000), - y: 6620 - }] - }, { - name: 'candle', - type: 'candlestick', - data: [{ - x: new Date(1538778600000), - y: [6629.81, 6650.5, 6623.04, 6633.33] - }, { - x: new Date(1538780400000), - y: [6632.01, 6643.59, 6620, 6630.11] - }, { - x: new Date(1538782200000), - y: [6630.71, 6648.95, 6623.34, 6635.65] - }, { - x: new Date(1538784000000), - y: [6635.65, 6651, 6629.67, 6638.24] - }, { - x: new Date(1538785800000), - y: [6638.24, 6640, 6620, 6624.47] - }, { - x: new Date(1538787600000), - y: [6624.53, 6636.03, 6621.68, 6624.31] - }, { - x: new Date(1538789400000), - y: [6624.61, 6632.2, 6617, 6626.02] - }, { - x: new Date(1538791200000), - y: [6627, 6627.62, 6584.22, 6603.02] - }, { - x: new Date(1538793000000), - y: [6605, 6608.03, 6598.95, 6604.01] - }, { - x: new Date(1538794800000), - y: [6604.5, 6614.4, 6602.26, 6608.02] - }, { - x: new Date(1538796600000), - y: [6608.02, 6610.68, 6601.99, 6608.91] - }, { - x: new Date(1538798400000), - y: [6608.91, 6618.99, 6608.01, 6612] - }, { - x: new Date(1538800200000), - y: [6612, 6615.13, 6605.09, 6612] - }, { - x: new Date(1538802000000), - y: [6612, 6624.12, 6608.43, 6622.95] - }, { - x: new Date(1538803800000), - y: [6623.91, 6623.91, 6615, 6615.67] - }, { - x: new Date(1538805600000), - y: [6618.69, 6618.74, 6610, 6610.4] - }, { - x: new Date(1538807400000), - y: [6611, 6622.78, 6610.4, 6614.9] - }, { - x: new Date(1538809200000), - y: [6614.9, 6626.2, 6613.33, 6623.45] - }, { - x: new Date(1538811000000), - y: [6623.48, 6627, 6618.38, 6620.35] - }, { - x: new Date(1538812800000), - y: [6619.43, 6620.35, 6610.05, 6615.53] - }, { - x: new Date(1538814600000), - y: [6615.53, 6617.93, 6610, 6615.19] - }, { - x: new Date(1538816400000), - y: [6615.19, 6621.6, 6608.2, 6620] - }, { - x: new Date(1538818200000), - y: [6619.54, 6625.17, 6614.15, 6620] - }, { - x: new Date(1538820000000), - y: [6620.33, 6634.15, 6617.24, 6624.61] - }, { - x: new Date(1538821800000), - y: [6625.95, 6626, 6611.66, 6617.58] - }, { - x: new Date(1538823600000), - y: [6619, 6625.97, 6595.27, 6598.86] - }, { - x: new Date(1538825400000), - y: [6598.86, 6598.88, 6570, 6587.16] - }, { - x: new Date(1538827200000), - y: [6588.86, 6600, 6580, 6593.4] - }, { - x: new Date(1538829000000), - y: [6593.99, 6598.89, 6585, 6587.81] - }, { - x: new Date(1538830800000), - y: [6587.81, 6592.73, 6567.14, 6578] - }, { - x: new Date(1538832600000), - y: [6578.35, 6581.72, 6567.39, 6579] - }, { - x: new Date(1538834400000), - y: [6579.38, 6580.92, 6566.77, 6575.96] - }, { - x: new Date(1538836200000), - y: [6575.96, 6589, 6571.77, 6588.92] - }, { - x: new Date(1538838000000), - y: [6588.92, 6594, 6577.55, 6589.22] - }, { - x: new Date(1538839800000), - y: [6589.3, 6598.89, 6589.1, 6596.08] - }, { - x: new Date(1538841600000), - y: [6597.5, 6600, 6588.39, 6596.25] - }, { - x: new Date(1538843400000), - y: [6598.03, 6600, 6588.73, 6595.97] - }, { - x: new Date(1538845200000), - y: [6595.97, 6602.01, 6588.17, 6602] - }, { - x: new Date(1538847000000), - y: [6602, 6607, 6596.51, 6599.95] - }, { - x: new Date(1538848800000), - y: [6600.63, 6601.21, 6590.39, 6591.02] - }, { - x: new Date(1538850600000), - y: [6591.02, 6603.08, 6591, 6591] - }, { - x: new Date(1538852400000), - y: [6591, 6601.32, 6585, 6592] - }, { - x: new Date(1538854200000), - y: [6593.13, 6596.01, 6590, 6593.34] - }, { - x: new Date(1538856000000), - y: [6593.34, 6604.76, 6582.63, 6593.86] - }, { - x: new Date(1538857800000), - y: [6593.86, 6604.28, 6586.57, 6600.01] - }, { - x: new Date(1538859600000), - y: [6601.81, 6603.21, 6592.78, 6596.25] - }, { - x: new Date(1538861400000), - y: [6596.25, 6604.2, 6590, 6602.99] - }, { - x: new Date(1538863200000), - y: [6602.99, 6606, 6584.99, 6587.81] - }, { - x: new Date(1538865000000), - y: [6587.81, 6595, 6583.27, 6591.96] - }, { - x: new Date(1538866800000), - y: [6591.97, 6596.07, 6585, 6588.39] - }, { - x: new Date(1538868600000), - y: [6587.6, 6598.21, 6587.6, 6594.27] - }, { - x: new Date(1538870400000), - y: [6596.44, 6601, 6590, 6596.55] - }, { - x: new Date(1538872200000), - y: [6598.91, 6605, 6596.61, 6600.02] - }, { - x: new Date(1538874000000), - y: [6600.55, 6605, 6589.14, 6593.01] - }, { - x: new Date(1538875800000), - y: [6593.15, 6605, 6592, 6603.06] - }, { - x: new Date(1538877600000), - y: [6603.07, 6604.5, 6599.09, 6603.89] - }, { - x: new Date(1538879400000), - y: [6604.44, 6604.44, 6600, 6603.5] - }, { - x: new Date(1538881200000), - y: [6603.5, 6603.99, 6597.5, 6603.86] - }, { - x: new Date(1538883000000), - y: [6603.85, 6605, 6600, 6604.07] - }, { - x: new Date(1538884800000), - y: [6604.98, 6606, 6604.07, 6606] - }] - }], - chart: { - height: 350, - type: 'line', - toolbar: { - show: false - } - }, - plotOptions: { - candlestick: { - colors: { - upward: chartCandlestickLineColors[0], - downward: chartCandlestickLineColors[1] - } - } - }, - colors: [chartCandlestickLineColors[2], chartCandlestickLineColors[0]], - stroke: { - width: [3, 1] - }, - tooltip: { - shared: true, - custom: [function (_ref) { - var seriesIndex = _ref.seriesIndex; - var dataPointIndex = _ref.dataPointIndex; - var w = _ref.w; - - return w.globals.series[seriesIndex][dataPointIndex]; - }, function (_ref2) { - var seriesIndex = _ref2.seriesIndex; - var dataPointIndex = _ref2.dataPointIndex; - var w = _ref2.w; - - var o = w.globals.seriesCandleO[seriesIndex][dataPointIndex]; - var h = w.globals.seriesCandleH[seriesIndex][dataPointIndex]; - var l = w.globals.seriesCandleL[seriesIndex][dataPointIndex]; - var c = w.globals.seriesCandleC[seriesIndex][dataPointIndex]; - return '
' + '
Open: ' + o + '
' + '
High: ' + h + '
' + '
Low: ' + l + '
' + '
Close: ' + c + '
' + '
'; - }] - }, - xaxis: { - type: 'datetime' - } - }; - - var chart = new ApexCharts(document.querySelector("#candlestick_with_line"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-column.init.js b/src/main/resources/static/assets/js/pages/apexcharts-column.init.js deleted file mode 100644 index 726fadd..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-column.init.js +++ /dev/null @@ -1,1202 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Column Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function(value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } - } -} - - -// Basic Column Chart -var chartColumnColors = getChartColorsArray("column_chart"); -if (chartColumnColors) { - var options = { - chart: { - height: 350, - type: 'bar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: false, - columnWidth: '45%', - endingShape: 'rounded' - }, - }, - dataLabels: { - enabled: false - }, - stroke: { - show: true, - width: 2, - colors: ['transparent'] - }, - series: [{ - name: 'Net Profit', - data: [46, 57, 59, 54, 62, 58, 64, 60, 66] - }, { - name: 'Revenue', - data: [74, 83, 102, 97, 86, 106, 93, 114, 94] - }, { - name: 'Free Cash Flow', - data: [37, 42, 38, 26, 47, 50, 54, 55, 43] - }], - colors: chartColumnColors, - xaxis: { - categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'], - }, - yaxis: { - title: { - text: '$ (thousands)' - } - }, - grid: { - borderColor: '#f1f1f1', - }, - fill: { - opacity: 1 - - }, - tooltip: { - y: { - formatter: function(val) { - return "$ " + val + " thousands" - } - } - } - } - - var chart = new ApexCharts( - document.querySelector("#column_chart"), - options - ); - - chart.render(); -} - - -// Column with Datalabels -var chartColumnDatatalabelColors = getChartColorsArray("column_chart_datalabel"); -if (chartColumnDatatalabelColors) { - var options = { - chart: { - height: 350, - type: 'bar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - dataLabels: { - position: 'top', // top, center, bottom - }, - } - }, - dataLabels: { - enabled: true, - formatter: function(val) { - return val + "%"; - }, - offsetY: -20, - style: { - fontSize: '12px', - colors: ["#adb5bd"] - } - }, - series: [{ - name: 'Inflation', - data: [2.5, 3.2, 5.0, 10.1, 4.2, 3.8, 3, 2.4, 4.0, 1.2, 3.5, 0.8] - }], - colors: chartColumnDatatalabelColors, - grid: { - borderColor: '#f1f1f1', - }, - xaxis: { - categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - position: 'top', - labels: { - offsetY: -18, - - }, - axisBorder: { - show: false - }, - axisTicks: { - show: false - }, - crosshairs: { - fill: { - type: 'gradient', - gradient: { - colorFrom: '#D8E3F0', - colorTo: '#BED1E6', - stops: [0, 100], - opacityFrom: 0.4, - opacityTo: 0.5, - } - } - }, - tooltip: { - enabled: true, - offsetY: -35, - - } - }, - fill: { - gradient: { - shade: 'light', - type: "horizontal", - shadeIntensity: 0.25, - gradientToColors: undefined, - inverseColors: true, - opacityFrom: 1, - opacityTo: 1, - stops: [50, 0, 100, 100] - }, - }, - yaxis: { - axisBorder: { - show: false - }, - axisTicks: { - show: false, - }, - labels: { - show: false, - formatter: function(val) { - return val + "%"; - } - } - }, - title: { - text: 'Monthly Inflation in Argentina, 2002', - floating: true, - offsetY: 320, - align: 'center', - style: { - color: '#444' - }, - style: { - fontWeight: 500, - }, - }, - } - - var chart = new ApexCharts( - document.querySelector("#column_chart_datalabel"), - options - ); - - chart.render(); -} - -// Stacked Columns Charts -var chartColumnStackedColors = getChartColorsArray("column_stacked"); -if (chartColumnStackedColors) { - var options = { - series: [{ - name: 'PRODUCT A', - data: [44, 55, 41, 67, 22, 43] - }, { - name: 'PRODUCT B', - data: [13, 23, 20, 8, 13, 27] - }, { - name: 'PRODUCT C', - data: [11, 17, 15, 15, 21, 14] - }, { - name: 'PRODUCT D', - data: [21, 7, 25, 13, 22, 8] - }], - chart: { - type: 'bar', - height: 350, - stacked: true, - toolbar: { - show: false - }, - zoom: { - enabled: true - }, - toolbar: { - show: false, - } - }, - responsive: [{ - breakpoint: 480, - options: { - legend: { - position: 'bottom', - offsetX: -10, - offsetY: 0 - } - } - }], - plotOptions: { - bar: { - horizontal: false, - borderRadius: 10 - }, - }, - xaxis: { - type: 'datetime', - categories: ['01/01/2011 GMT', '01/02/2011 GMT', '01/03/2011 GMT', '01/04/2011 GMT', - '01/05/2011 GMT', '01/06/2011 GMT' - ], - }, - legend: { - position: 'right', - offsetY: 40 - }, - fill: { - opacity: 1 - }, - colors: chartColumnStackedColors, - }; - - var chart = new ApexCharts(document.querySelector("#column_stacked"), options); - chart.render(); -} - -// 100% Stacked Column Chart - -var chartColumnStacked100Colors = getChartColorsArray("column_stacked_chart"); -if (chartColumnStacked100Colors) { - var options = { - series: [{ - name: 'PRODUCT A', - data: [44, 55, 41, 67, 22, 43, 21, 49] - }, { - name: 'PRODUCT B', - data: [13, 23, 20, 8, 13, 27, 33, 12] - }, { - name: 'PRODUCT C', - data: [11, 17, 15, 15, 21, 14, 15, 13] - }], - chart: { - type: 'bar', - height: 350, - stacked: true, - stackType: '100%', - toolbar: { - show: false, - } - }, - responsive: [{ - breakpoint: 480, - options: { - legend: { - position: 'bottom', - offsetX: -10, - offsetY: 0 - } - } - }], - xaxis: { - categories: ['2011 Q1', '2011 Q2', '2011 Q3', '2011 Q4', '2012 Q1', '2012 Q2', - '2012 Q3', '2012 Q4' - ], - }, - fill: { - opacity: 1 - }, - legend: { - position: 'right', - offsetX: 0, - offsetY: 50 - }, - colors: chartColumnStacked100Colors, - }; - - var chart = new ApexCharts(document.querySelector("#column_stacked_chart"), options); - chart.render(); -} - -// column with Markers -var chartColumnMarkersColors = getChartColorsArray("column_markers"); -if (chartColumnMarkersColors) { - var options = { - series: [{ - name: 'Actual', - data: [{ - x: '2011', - y: 1292, - goals: [{ - name: 'Expected', - value: 1400, - strokeWidth: 5, - strokeColor: '#775DD0' - }] - }, - { - x: '2012', - y: 4432, - goals: [{ - name: 'Expected', - value: 5400, - strokeWidth: 5, - strokeColor: '#775DD0' - }] - }, - { - x: '2013', - y: 5423, - goals: [{ - name: 'Expected', - value: 5200, - strokeWidth: 5, - strokeColor: '#775DD0' - }] - }, - { - x: '2014', - y: 6653, - goals: [{ - name: 'Expected', - value: 6500, - strokeWidth: 5, - strokeColor: '#775DD0' - }] - }, - { - x: '2015', - y: 8133, - goals: [{ - name: 'Expected', - value: 6600, - strokeWidth: 5, - strokeColor: '#775DD0' - }] - }, - { - x: '2016', - y: 7132, - goals: [{ - name: 'Expected', - value: 7500, - strokeWidth: 5, - strokeColor: '#775DD0' - }] - }, - { - x: '2017', - y: 7332, - goals: [{ - name: 'Expected', - value: 8700, - strokeWidth: 5, - strokeColor: '#775DD0' - }] - }, - { - x: '2018', - y: 6553, - goals: [{ - name: 'Expected', - value: 7300, - strokeWidth: 5, - strokeColor: '#775DD0' - }] - } - ] - }], - chart: { - height: 350, - type: 'bar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - columnWidth: '30%' - } - }, - colors: chartColumnMarkersColors, - dataLabels: { - enabled: false - }, - legend: { - show: true, - showForSingleSeries: true, - customLegendItems: ['Actual', 'Expected'], - markers: { - fillColors: chartColumnMarkersColors - } - } - }; - - var chart = new ApexCharts(document.querySelector("#column_markers"), options); - chart.render(); -} - -// Column with Rotated Labels -var chartColumnRotateLabelsColors = getChartColorsArray("column_rotated_labels"); -if (chartColumnRotateLabelsColors) { - var options = { - series: [{ - name: 'Servings', - data: [44, 55, 41, 67, 22, 43, 21, 33, 45, 31, 87, 65, 35] - }], - annotations: { - points: [{ - x: 'Bananas', - seriesIndex: 0, - label: { - borderColor: '#775DD0', - offsetY: 0, - style: { - color: '#fff', - background: '#775DD0', - }, - text: 'Bananas are good', - } - }] - }, - chart: { - height: 350, - type: 'bar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - borderRadius: 10, - columnWidth: '50%', - } - }, - dataLabels: { - enabled: false - }, - stroke: { - width: 2 - }, - colors: chartColumnRotateLabelsColors, - xaxis: { - labels: { - rotate: -45 - }, - categories: ['Apples', 'Oranges', 'Strawberries', 'Pineapples', 'Mangoes', 'Bananas', - 'Blackberries', 'Pears', 'Watermelons', 'Cherries', 'Pomegranates', 'Tangerines', 'Papayas' - ], - tickPlacement: 'on' - }, - yaxis: { - title: { - text: 'Servings', - }, - }, - fill: { - type: 'gradient', - gradient: { - shade: 'light', - type: "horizontal", - shadeIntensity: 0.25, - gradientToColors: undefined, - inverseColors: true, - opacityFrom: 0.85, - opacityTo: 0.85, - stops: [50, 0, 100] - }, - } - }; - - var chart = new ApexCharts(document.querySelector("#column_rotated_labels"), options); - chart.render(); -} - -// Column with Negative Values -var chartNagetiveValuesColors = getChartColorsArray("column_nagetive_values"); -if (chartNagetiveValuesColors) { - var options = { - series: [{ - name: 'Cash Flow', - data: [1.45, 5.42, 5.9, -0.42, -12.6, -18.1, -18.2, -14.16, -11.1, -6.09, 0.34, 3.88, 13.07, - 5.8, 2, 7.37, 8.1, 13.57, 15.75, 17.1, 19.8, -27.03, -54.4, -47.2, -43.3, -18.6, - - 48.6, -41.1, -39.6, -37.6, -29.4, -21.4, -2.4 - ] - }], - chart: { - type: 'bar', - height: 350, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - colors: { - ranges: [{ - from: -100, - to: -46, - color: chartNagetiveValuesColors[1] - }, { - from: -45, - to: 0, - color: chartNagetiveValuesColors[2] - }] - }, - columnWidth: '80%', - } - }, - dataLabels: { - enabled: false, - }, - colors: chartNagetiveValuesColors[0], - yaxis: { - title: { - text: 'Growth', - }, - labels: { - formatter: function(y) { - return y.toFixed(0) + "%"; - } - } - }, - xaxis: { - type: 'datetime', - categories: [ - '2011-01-01', '2011-02-01', '2011-03-01', '2011-04-01', '2011-05-01', '2011-06-01', - '2011-07-01', '2011-08-01', '2011-09-01', '2011-10-01', '2011-11-01', '2011-12-01', - '2012-01-01', '2012-02-01', '2012-03-01', '2012-04-01', '2012-05-01', '2012-06-01', - '2012-07-01', '2012-08-01', '2012-09-01', '2012-10-01', '2012-11-01', '2012-12-01', - '2013-01-01', '2013-02-01', '2013-03-01', '2013-04-01', '2013-05-01', '2013-06-01', - '2013-07-01', '2013-08-01', '2013-09-01' - ], - labels: { - rotate: -90 - } - } - }; - - var chart = new ApexCharts(document.querySelector("#column_nagetive_values"), options); - chart.render(); -} - -// Range Column Chart -var chartRangeColors = getChartColorsArray("column_range"); -if (chartRangeColors) { - var options = { - series: [{ - data: [{ - x: 'Team A', - y: [1, 5] - }, { - x: 'Team B', - y: [4, 6] - }, { - x: 'Team C', - y: [5, 8] - }, { - x: 'Team D', - y: [3, 11] - }] - }, { - data: [{ - x: 'Team A', - y: [2, 6] - }, { - x: 'Team B', - y: [1, 3] - }, { - x: 'Team C', - y: [7, 8] - }, { - x: 'Team D', - y: [5, 9] - }] - }], - chart: { - type: 'rangeBar', - height: 335, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: false - } - }, - dataLabels: { - enabled: true - }, - legend: { - show: false, - }, - colors: chartRangeColors - }; - - var chart = new ApexCharts(document.querySelector("#column_range"), options); - chart.render(); -} - - -// Dynamic Loaded Chart - -Apex = { - chart: { - toolbar: { - show: false - } - }, - tooltip: { - shared: false - }, - legend: { - show: false - } -} - - -var colors = getChartColorsArray("chart-year"); - - /** - * Randomize array element order in-place. - * Using Durstenfeld shuffle algorithm. - */ - function shuffleArray(array) { - for (var i = array.length - 1; i > 0; i--) { - var j = Math.floor(Math.random() * (i + 1)); - var temp = array[i]; - array[i] = array[j]; - array[j] = temp; - } - return array; - } - - var arrayData = [{ - y: 400, - quarters: [{ - x: 'Q1', - y: 120 - }, { - x: 'Q2', - y: 90 - }, { - x: 'Q3', - y: 100 - }, { - x: 'Q4', - y: 90 - }] - }, { - y: 430, - quarters: [{ - x: 'Q1', - y: 120 - }, { - x: 'Q2', - y: 110 - }, { - x: 'Q3', - y: 90 - }, { - x: 'Q4', - y: 110 - }] - }, { - y: 448, - quarters: [{ - x: 'Q1', - y: 70 - }, { - x: 'Q2', - y: 100 - }, { - x: 'Q3', - y: 140 - }, { - x: 'Q4', - y: 138 - }] - }, { - y: 470, - quarters: [{ - x: 'Q1', - y: 150 - }, { - x: 'Q2', - y: 60 - }, { - x: 'Q3', - y: 190 - }, { - x: 'Q4', - y: 70 - }] - }, { - y: 540, - quarters: [{ - x: 'Q1', - y: 120 - }, { - x: 'Q2', - y: 120 - }, { - x: 'Q3', - y: 130 - }, { - x: 'Q4', - y: 170 - }] - }, { - y: 580, - quarters: [{ - x: 'Q1', - y: 170 - }, { - x: 'Q2', - y: 130 - }, { - x: 'Q3', - y: 120 - }, { - x: 'Q4', - y: 160 - }] - }]; - - function makeData() { - var dataSet = shuffleArray(arrayData) - - var dataYearSeries = [{ - x: "2011", - y: dataSet[0].y, - color: colors[0], - quarters: dataSet[0].quarters - }, { - x: "2012", - y: dataSet[1].y, - color: colors[1], - quarters: dataSet[1].quarters - }, { - x: "2013", - y: dataSet[2].y, - color: colors[2], - quarters: dataSet[2].quarters - }, { - x: "2014", - y: dataSet[3].y, - color: colors[3], - quarters: dataSet[3].quarters - }, { - x: "2015", - y: dataSet[4].y, - color: colors[4], - quarters: dataSet[4].quarters - }, { - x: "2016", - y: dataSet[5].y, - color: colors[5], - quarters: dataSet[5].quarters - }]; - - return dataYearSeries - } - - function updateQuarterChart(sourceChart, destChartIDToUpdate) { - var series = []; - var seriesIndex = 0; - var colors = [] - - if (sourceChart.w.globals.selectedDataPoints[0]) { - var selectedPoints = sourceChart.w.globals.selectedDataPoints; - for (var i = 0; i < selectedPoints[seriesIndex].length; i++) { - var selectedIndex = selectedPoints[seriesIndex][i]; - var yearSeries = sourceChart.w.config.series[seriesIndex]; - series.push({ - name: yearSeries.data[selectedIndex].x, - data: yearSeries.data[selectedIndex].quarters - }) - colors.push(yearSeries.data[selectedIndex].color) - } - - if (series.length === 0) series = [{ - data: [] - }] - - return ApexCharts.exec(destChartIDToUpdate, 'updateOptions', { - series: series, - colors: colors, - fill: { - colors: colors - } - }) - } - } - - var options = { - series: [{ - data: makeData() - }], - chart: { - id: 'barYear', - height: 330, - width: '100%', - type: 'bar', - events: { - dataPointSelection: function(e, chart, opts) { - var quarterChartEl = document.querySelector("#chart-quarter"); - var yearChartEl = document.querySelector("#chart-year"); - - if (opts.selectedDataPoints[0].length === 1) { - if (quarterChartEl.classList.contains("active")) { - updateQuarterChart(chart, 'barQuarter') - } else { - yearChartEl.classList.add("chart-quarter-activated") - quarterChartEl.classList.add("active"); - updateQuarterChart(chart, 'barQuarter') - } - } else { - updateQuarterChart(chart, 'barQuarter') - } - - if (opts.selectedDataPoints[0].length === 0) { - yearChartEl.classList.remove("chart-quarter-activated") - quarterChartEl.classList.remove("active"); - } - - }, - updated: function(chart) { - updateQuarterChart(chart, 'barQuarter') - } - } - }, - plotOptions: { - bar: { - distributed: true, - horizontal: true, - barHeight: '75%', - dataLabels: { - position: 'bottom' - } - } - }, - dataLabels: { - enabled: true, - textAnchor: 'start', - style: { - colors: ['#fff'] - }, - formatter: function(val, opt) { - return opt.w.globals.labels[opt.dataPointIndex] - }, - offsetX: 0, - dropShadow: { - enabled: false - } - }, - - colors: colors, - - states: { - normal: { - filter: { - type: 'desaturate' - } - }, - active: { - allowMultipleDataPointsSelection: true, - filter: { - type: 'darken', - value: 1 - } - } - }, - tooltip: { - x: { - show: false - }, - y: { - title: { - formatter: function (val, opts) { - return opts.w.globals.labels[opts.dataPointIndex] - } - } - } - }, - title: { - text: 'Yearly Results', - offsetX: 15, - style: { - fontWeight: 500, - }, - }, - subtitle: { - text: '(Click on bar to see details)', - offsetX: 15 - }, - yaxis: { - labels: { - show: false - } - } -}; - -var chart = new ApexCharts(document.querySelector("#chart-year"), options); -chart.render(); - -var optionsQuarter = { - series: [{ - data: [] - }], - chart: { - id: 'barQuarter', - height: 330, - width: '100%', - type: 'bar', - stacked: true - }, - plotOptions: { - bar: { - columnWidth: '50%', - horizontal: false - } - }, - legend: { - show: false - }, - grid: { - yaxis: { - lines: { - show: false, - } - }, - xaxis: { - lines: { - show: true, - } - } - }, - yaxis: { - labels: { - show: false - } - }, - title: { - text: 'Quarterly Results', - offsetX: 10, - style: { - fontWeight: 500, - }, - }, - tooltip: { - x: { - formatter: function (val, opts) { - return opts.w.globals.seriesNames[opts.seriesIndex] - } - }, - y: { - title: { - formatter: function (val, opts) { - return opts.w.globals.labels[opts.dataPointIndex] - } - } - } - } -}; - - var chartQuarter = new ApexCharts(document.querySelector("#chart-quarter"), optionsQuarter); - chartQuarter.render(); - chart.addEventListener('dataPointSelection', function(e, chart, opts) { - var quarterChartEl = document.querySelector("#chart-quarter"); - var yearChartEl = document.querySelector("#chart-year"); - - if (opts.selectedDataPoints[0].length === 1) { - if (quarterChartEl.classList.contains("active")) { - updateQuarterChart(chart, 'barQuarter') - } else { - yearChartEl.classList.add("chart-quarter-activated") - quarterChartEl.classList.add("active"); - updateQuarterChart(chart, 'barQuarter') - } - } else { - updateQuarterChart(chart, 'barQuarter') - } - - if (opts.selectedDataPoints[0].length === 0) { - yearChartEl.classList.remove("chart-quarter-activated") - quarterChartEl.classList.remove("active"); - } - -}) - -chart.addEventListener('updated', function (chart) { - updateQuarterChart(chart, 'barQuarter') -}) - - -// Distributed Columns Charts -var chartColumnDistributedColors = getChartColorsArray("column_distributed"); -if (chartColumnDistributedColors) { - var options = { - series: [{ - data: [21, 22, 10, 28, 16, 21, 13, 30] - }], - chart: { - height: 350, - type: 'bar', - events: { - click: function (chart, w, e) { - // console.log(chart, w, e) - } - } - }, - colors: chartColumnDistributedColors, - plotOptions: { - bar: { - columnWidth: '45%', - distributed: true, - } - }, - dataLabels: { - enabled: false - }, - legend: { - show: false - }, - xaxis: { - categories: [ - ['John', 'Doe'], - ['Joe', 'Smith'], - ['Jake', 'Williams'], - 'Amber', ['Peter', 'Brown'], - ['Mary', 'Evans'], - ['David', 'Wilson'], - ['Lily', 'Roberts'], - ], - labels: { - style: { - colors: [ - '#038edc', - '#51d28c', - '#f7cc53', - '#f34e4e', - '#564ab1', - '#5fd0f3', - ], - fontSize: '12px' - } - } - } - }; - - var chart = new ApexCharts(document.querySelector("#column_distributed"), options); - chart.render(); -} - - -// column_group_labels -var chartColumnGroupLabelsColors = getChartColorsArray("column_group_labels"); -if (chartColumnGroupLabelsColors) { - dayjs.extend(window.dayjs_plugin_quarterOfYear) - var optionsGroup = { - series: [{ - name: "sales", - data: [{ - x: '2020/01/01', - y: 400 - }, { - x: '2020/04/01', - y: 430 - }, { - x: '2020/07/01', - y: 448 - }, { - x: '2020/10/01', - y: 470 - }, { - x: '2021/01/01', - y: 540 - }, { - x: '2021/04/01', - y: 580 - }, { - x: '2021/07/01', - y: 690 - }, { - x: '2021/10/01', - y: 690 - }] - }], - chart: { - type: 'bar', - height: 350, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: false, - columnWidth: '45%', - }, - }, - colors: chartColumnGroupLabelsColors, - xaxis: { - type: 'category', - labels: { - formatter: function (val) { - return "Q" + dayjs(val).quarter() - } - }, - group: { - style: { - fontSize: '10px', - fontWeight: 700 - }, - groups: [ - { title: '2020', cols: 4 }, - { title: '2021', cols: 4 } - ] - } - }, - title: { - text: 'Grouped Labels on the X-axis', - style: { - fontWeight: 500, - }, - }, - tooltip: { - x: { - formatter: function (val) { - return "Q" + dayjs(val).quarter() + " " + dayjs(val).format("YYYY") - } - } - }, - }; - - var chartGroup = new ApexCharts(document.querySelector("#column_group_labels"), optionsGroup); - chartGroup.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-heatmap.init.js b/src/main/resources/static/assets/js/pages/apexcharts-heatmap.init.js deleted file mode 100644 index 69b20e8..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-heatmap.init.js +++ /dev/null @@ -1,544 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Heatmap Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function(value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } - } -} - -// Basic Heatmap Charts -var chartHeatMapBasicColors = getChartColorsArray("basic_heatmap"); -if (chartHeatMapBasicColors) { - var options = { - series: [{ - name: 'Metric1', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric2', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric3', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric4', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric5', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric6', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric7', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric8', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric9', - data: generateData(18, { - min: 0, - max: 90 - }) - } - ], - chart: { - height: 450, - type: 'heatmap', - toolbar: { - show: false - } - }, - dataLabels: { - enabled: false - }, - colors: [chartHeatMapBasicColors[0]], - title: { - text: 'HeatMap Chart (Single color)', - style: { - fontWeight: 500, - }, - }, - stroke: { - colors: [chartHeatMapBasicColors[1]] - } - }; - - var chart = new ApexCharts(document.querySelector("#basic_heatmap"), options); - chart.render(); -} - -// Generate Data Script - -function generateData(count, yrange) { - var i = 0; - var series = []; - while (i < count) { - var x = (i + 1).toString(); - var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; - - series.push({ - x: x, - y: y - }); - i++; - } - return series; -} - -var data = [{ - name: 'W1', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W2', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W3', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W4', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W5', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W6', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W7', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W8', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W9', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W10', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W11', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W12', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W13', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W14', - data: generateData(8, { - min: 0, - max: 90 - }) - }, - { - name: 'W15', - data: generateData(8, { - min: 0, - max: 90 - }) - } -] - -data.reverse() - -var colors = ["#f7cc53", "#f1734f", "#663f59", "#6a6e94", "#4e88b4", "#00a7c6", "#18d8d8", '#a9d794', '#46aF78', '#a93f55', '#8c5e58', '#2176ff', '#5fd0f3', '#74788d', '#51d28c'] - -colors.reverse() - -// Multiple Series - Heatmap -var chartHeatMapMultipleColors = getChartColorsArray("multiple_heatmap"); -if (chartHeatMapMultipleColors) { - var options = { - series: data, - chart: { - height: 450, - type: 'heatmap', - toolbar: { - show: false - } - }, - dataLabels: { - enabled: false - }, - colors: [chartHeatMapMultipleColors[0], chartHeatMapMultipleColors[1], chartHeatMapMultipleColors[2], chartHeatMapMultipleColors[3], chartHeatMapMultipleColors[4], chartHeatMapMultipleColors[5], chartHeatMapMultipleColors[6], chartHeatMapMultipleColors[7]], - xaxis: { - type: 'category', - categories: ['10:00', '10:30', '11:00', '11:30', '12:00', '12:30', '01:00', '01:30'] - }, - title: { - text: 'HeatMap Chart (Different color shades for each series)', - style: { - fontWeight: 500, - }, - }, - grid: { - padding: { - right: 20 - } - }, - stroke: { - colors: [chartHeatMapMultipleColors[8]] - } - }; - var chart = new ApexCharts(document.querySelector("#multiple_heatmap"), options); - chart.render(); -} - -// Color Range -var chartHeatMapColors = getChartColorsArray("color_heatmap"); -if (chartHeatMapColors) { - var options = { - series: [{ - name: 'Jan', - data: generateData(20, { - min: -30, - max: 55 - }) - }, - { - name: 'Feb', - data: generateData(20, { - min: -30, - max: 55 - }) - }, - { - name: 'Mar', - data: generateData(20, { - min: -30, - max: 55 - }) - }, - { - name: 'Apr', - data: generateData(20, { - min: -30, - max: 55 - }) - }, - { - name: 'May', - data: generateData(20, { - min: -30, - max: 55 - }) - }, - { - name: 'Jun', - data: generateData(20, { - min: -30, - max: 55 - }) - }, - { - name: 'Jul', - data: generateData(20, { - min: -30, - max: 55 - }) - }, - { - name: 'Aug', - data: generateData(20, { - min: -30, - max: 55 - }) - }, - { - name: 'Sep', - data: generateData(20, { - min: -30, - max: 55 - }) - } - ], - chart: { - height: 350, - type: 'heatmap', - toolbar: { - show: false - } - }, - plotOptions: { - heatmap: { - shadeIntensity: 0.5, - radius: 0, - useFillColorAsStroke: true, - colorScale: { - ranges: [{ - from: -30, - to: 5, - name: 'Low', - color: chartHeatMapColors[0] - }, - { - from: 6, - to: 20, - name: 'Medium', - color: chartHeatMapColors[1] - }, - { - from: 21, - to: 45, - name: 'High', - color: chartHeatMapColors[2] - }, - { - from: 46, - to: 55, - name: 'Extreme', - color: chartHeatMapColors[3] - } - ] - } - } - }, - dataLabels: { - enabled: false - }, - stroke: { - width: 1 - }, - title: { - text: 'HeatMap Chart with Color Range', - style: { - fontWeight: 500, - }, - }, - }; - - var chart = new ApexCharts(document.querySelector("#color_heatmap"), options); - chart.render(); -} - -// Heatmap - Range Without Shades -var chartHeatMapShadesColors = getChartColorsArray("shades_heatmap"); -if (chartHeatMapShadesColors) { - var options = { - series: [{ - name: 'Metric1', - data: generateData(20, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric2', - data: generateData(20, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric3', - data: generateData(20, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric4', - data: generateData(20, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric5', - data: generateData(20, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric6', - data: generateData(20, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric7', - data: generateData(20, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric8', - data: generateData(20, { - min: 0, - max: 90 - }) - }, - { - name: 'Metric8', - data: generateData(20, { - min: 0, - max: 90 - }) - } - ], - chart: { - height: 350, - type: 'heatmap', - toolbar: { - show: false - } - }, - stroke: { - width: 0 - }, - plotOptions: { - heatmap: { - radius: 30, - enableShades: false, - colorScale: { - ranges: [{ - from: 0, - to: 50, - color: chartHeatMapShadesColors[0] - }, - { - from: 51, - to: 100, - color: chartHeatMapShadesColors[1] - }, - ], - }, - - } - }, - dataLabels: { - enabled: true, - style: { - colors: ['#fff'] - } - }, - xaxis: { - type: 'category', - }, - title: { - text: 'Rounded (Range without Shades)', - style: { - fontWeight: 500, - }, - }, - }; - - var chart = new ApexCharts(document.querySelector("#shades_heatmap"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-line.init.js b/src/main/resources/static/assets/js/pages/apexcharts-line.init.js deleted file mode 100644 index a661ffe..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-line.init.js +++ /dev/null @@ -1,1453 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Line Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function(value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } - } -} - - -// Basic Line Charts - -var linechartBasicColors = getChartColorsArray("line_chart_basic"); -if (linechartBasicColors) { - var options = { - series: [{ - name: "Desktops", - data: [10, 41, 35, 51, 49, 62, 69, 91, 148] - }], - chart: { - height: 350, - type: 'line', - zoom: { - enabled: false - }, - toolbar: { - show: false - } - }, - markers: { - size: 4, - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight' - }, - colors: linechartBasicColors, - title: { - text: 'Product Trends by Month', - align: 'left', - style: { - fontWeight: 500, - }, - }, - - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'], - } - }; - - var chart = new ApexCharts(document.querySelector("#line_chart_basic"), options); - chart.render(); -} - - -// Zoomable Timeseries -var linechartZoomColors = getChartColorsArray("line_chart_zoomable"); -if (linechartZoomColors) { - var options = { - series: [{ - name: 'XYZ MOTORS', - data: [{ - x: new Date('2018-01-12').getTime(), - y: 140 - }, { - x: new Date('2018-01-13').getTime(), - y: 147 - }, { - x: new Date('2018-01-14').getTime(), - y: 150 - }, { - x: new Date('2018-01-15').getTime(), - y: 154 - }, { - x: new Date('2018-01-16').getTime(), - y: 160 - }, { - x: new Date('2018-01-17').getTime(), - y: 165 - }, { - x: new Date('2018-01-18').getTime(), - y: 162 - }, { - x: new Date('2018-01-20').getTime(), - y: 159 - }, { - x: new Date('2018-01-21').getTime(), - y: 164 - }, { - x: new Date('2018-01-22').getTime(), - y: 160 - }, { - x: new Date('2018-01-23').getTime(), - y: 165 - }, { - x: new Date('2018-01-24').getTime(), - y: 169 - }, { - x: new Date('2018-01-25').getTime(), - y: 172 - }, { - x: new Date('2018-01-26').getTime(), - y: 177 - }, { - x: new Date('2018-01-27').getTime(), - y: 173 - }, { - x: new Date('2018-01-28').getTime(), - y: 169 - }, { - x: new Date('2018-01-29').getTime(), - y: 163 - }, { - x: new Date('2018-01-30').getTime(), - y: 158 - }, { - x: new Date('2018-02-01').getTime(), - y: 153 - }, { - x: new Date('2018-02-02').getTime(), - y: 149 - }, { - x: new Date('2018-02-03').getTime(), - y: 144 - }, { - x: new Date('2018-02-05').getTime(), - y: 150 - }, { - x: new Date('2018-02-06').getTime(), - y: 155 - }, { - x: new Date('2018-02-07').getTime(), - y: 159 - }, { - x: new Date('2018-02-08').getTime(), - y: 163 - }, { - x: new Date('2018-02-09').getTime(), - y: 156 - }, { - x: new Date('2018-02-11').getTime(), - y: 151 - }, { - x: new Date('2018-02-12').getTime(), - y: 157 - }, { - x: new Date('2018-02-13').getTime(), - y: 161 - }, { - x: new Date('2018-02-14').getTime(), - y: 150 - }, { - x: new Date('2018-02-15').getTime(), - y: 154 - }, { - x: new Date('2018-02-16').getTime(), - y: 160 - }, { - x: new Date('2018-02-17').getTime(), - y: 165 - }, { - x: new Date('2018-02-18').getTime(), - y: 162 - }, { - x: new Date('2018-02-20').getTime(), - y: 159 - }, { - x: new Date('2018-02-21').getTime(), - y: 164 - }, { - x: new Date('2018-02-22').getTime(), - y: 160 - }, { - x: new Date('2018-02-23').getTime(), - y: 165 - }, { - x: new Date('2018-02-24').getTime(), - y: 169 - }, { - x: new Date('2018-02-25').getTime(), - y: 172 - }, { - x: new Date('2018-02-26').getTime(), - y: 177 - }, { - x: new Date('2018-02-27').getTime(), - y: 173 - }, { - x: new Date('2018-02-28').getTime(), - y: 169 - }, { - x: new Date('2018-02-29').getTime(), - y: 163 - }, { - x: new Date('2018-02-30').getTime(), - y: 162 - }, { - x: new Date('2018-03-01').getTime(), - y: 158 - }, { - x: new Date('2018-03-02').getTime(), - y: 152 - }, { - x: new Date('2018-03-03').getTime(), - y: 147 - }, { - x: new Date('2018-03-05').getTime(), - y: 142 - }, { - x: new Date('2018-03-06').getTime(), - y: 147 - }, { - x: new Date('2018-03-07').getTime(), - y: 151 - }, { - x: new Date('2018-03-08').getTime(), - y: 155 - }, { - x: new Date('2018-03-09').getTime(), - y: 159 - }, { - x: new Date('2018-03-11').getTime(), - y: 162 - }, { - x: new Date('2018-03-12').getTime(), - y: 157 - }, { - x: new Date('2018-03-13').getTime(), - y: 161 - }, { - x: new Date('2018-03-14').getTime(), - y: 166 - }, { - x: new Date('2018-03-15').getTime(), - y: 169 - }, { - x: new Date('2018-03-16').getTime(), - y: 172 - }, { - x: new Date('2018-03-17').getTime(), - y: 177 - }, { - x: new Date('2018-03-18').getTime(), - y: 181 - }, { - x: new Date('2018-03-20').getTime(), - y: 178 - }, { - x: new Date('2018-03-21').getTime(), - y: 173 - }, { - x: new Date('2018-03-22').getTime(), - y: 169 - }, { - x: new Date('2018-03-23').getTime(), - y: 163 - }, { - x: new Date('2018-03-24').getTime(), - y: 159 - }, { - x: new Date('2018-03-25').getTime(), - y: 164 - }, { - x: new Date('2018-03-26').getTime(), - y: 168 - }, { - x: new Date('2018-03-27').getTime(), - y: 172 - }, { - x: new Date('2018-03-28').getTime(), - y: 169 - }, { - x: new Date('2018-03-29').getTime(), - y: 163 - }, { - x: new Date('2018-03-30').getTime(), - y: 162 - }, { - x: new Date('2018-04-01').getTime(), - y: 158 - }, { - x: new Date('2018-04-02').getTime(), - y: 152 - }, { - x: new Date('2018-04-03').getTime(), - y: 147 - }, { - x: new Date('2018-04-05').getTime(), - y: 142 - }, { - x: new Date('2018-04-06').getTime(), - y: 147 - }, { - x: new Date('2018-04-07').getTime(), - y: 151 - }, { - x: new Date('2018-04-08').getTime(), - y: 155 - }, { - x: new Date('2018-04-09').getTime(), - y: 159 - }, { - x: new Date('2018-04-11').getTime(), - y: 162 - }, { - x: new Date('2018-04-12').getTime(), - y: 157 - }, { - x: new Date('2018-04-13').getTime(), - y: 161 - }, { - x: new Date('2018-04-14').getTime(), - y: 166 - }, { - x: new Date('2018-04-15').getTime(), - y: 169 - }, { - x: new Date('2018-04-16').getTime(), - y: 172 - }, { - x: new Date('2018-04-17').getTime(), - y: 177 - }, { - x: new Date('2018-04-18').getTime(), - y: 181 - }, { - x: new Date('2018-04-20').getTime(), - y: 178 - }, { - x: new Date('2018-04-21').getTime(), - y: 173 - }, { - x: new Date('2018-04-22').getTime(), - y: 169 - }, { - x: new Date('2018-04-23').getTime(), - y: 163 - }, { - x: new Date('2018-04-24').getTime(), - y: 159 - }, { - x: new Date('2018-04-25').getTime(), - y: 164 - }, { - x: new Date('2018-04-26').getTime(), - y: 168 - }, { - x: new Date('2018-04-27').getTime(), - y: 172 - }, { - x: new Date('2018-04-28').getTime(), - y: 169 - }, { - x: new Date('2018-04-29').getTime(), - y: 163 - }, { - x: new Date('2018-04-30').getTime(), - y: 162 - }, { - x: new Date('2018-05-01').getTime(), - y: 158 - }, { - x: new Date('2018-05-02').getTime(), - y: 152 - }, { - x: new Date('2018-05-03').getTime(), - y: 147 - }, { - x: new Date('2018-05-04').getTime(), - y: 142 - }, { - x: new Date('2018-05-05').getTime(), - y: 147 - }, { - x: new Date('2018-05-07').getTime(), - y: 151 - }, { - x: new Date('2018-05-08').getTime(), - y: 155 - }, { - x: new Date('2018-05-09').getTime(), - y: 159 - }, { - x: new Date('2018-05-11').getTime(), - y: 162 - }, { - x: new Date('2018-05-12').getTime(), - y: 157 - }, { - x: new Date('2018-05-13').getTime(), - y: 161 - }, { - x: new Date('2018-05-14').getTime(), - y: 166 - }, { - x: new Date('2018-05-15').getTime(), - y: 169 - }, { - x: new Date('2018-05-16').getTime(), - y: 172 - }, { - x: new Date('2018-05-17').getTime(), - y: 177 - }, { - x: new Date('2018-05-18').getTime(), - y: 181 - }, { - x: new Date('2018-05-20').getTime(), - y: 178 - }, { - x: new Date('2018-05-21').getTime(), - y: 173 - }, { - x: new Date('2018-05-22').getTime(), - y: 169 - }, { - x: new Date('2018-05-23').getTime(), - y: 163 - }, { - x: new Date('2018-05-24').getTime(), - y: 159 - }, { - x: new Date('2018-05-25').getTime(), - y: 164 - }, { - x: new Date('2018-05-26').getTime(), - y: 168 - }, { - x: new Date('2018-05-27').getTime(), - y: 172 - }, { - x: new Date('2018-05-28').getTime(), - y: 169 - }, { - x: new Date('2018-05-29').getTime(), - y: 163 - }, { - x: new Date('2018-05-30').getTime(), - y: 162 - }, ] - }], - chart: { - type: 'area', - stacked: false, - height: 350, - zoom: { - type: 'x', - enabled: true, - autoScaleYaxis: true - }, - toolbar: { - autoSelected: 'zoom' - } - }, - colors: linechartZoomColors, - dataLabels: { - enabled: false - }, - markers: { - size: 0, - }, - title: { - text: 'Stock Price Movement', - align: 'left', - style: { - fontWeight: 500, - }, - }, - fill: { - type: 'gradient', - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.5, - opacityTo: 0, - stops: [0, 90, 100] - }, - }, - yaxis: { - showAlways: true, - labels: { - show: true, - formatter: function(val) { - return (val / 1000000).toFixed(0); - }, - }, - title: { - text: 'Price', - style: { - fontWeight: 500, - }, - }, - }, - xaxis: { - type: 'datetime', - - }, - tooltip: { - shared: false, - y: { - formatter: function(val) { - return (val / 1000000).toFixed(0) - } - } - } - }; - - var chart = new ApexCharts(document.querySelector("#line_chart_zoomable"), options); - chart.render(); -} - - -// Line chart datalabel -var linechartDatalabelColors = getChartColorsArray("line_chart_datalabel"); -if (linechartDatalabelColors) { - var options = { - chart: { - height: 380, - type: 'line', - zoom: { - enabled: false - }, - toolbar: { - show: false - } - }, - colors: linechartDatalabelColors, - dataLabels: { - enabled: false, - }, - stroke: { - width: [3, 3], - curve: 'straight' - }, - series: [{ - name: "High - 2018", - data: [26, 24, 32, 36, 33, 31, 33] - }, - { - name: "Low - 2018", - data: [14, 11, 16, 12, 17, 13, 12] - } - ], - title: { - text: 'Average High & Low Temperature', - align: 'left', - style: { - fontWeight: 500, - }, - }, - grid: { - row: { - colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns - opacity: 0.2 - }, - borderColor: '#f1f1f1' - }, - markers: { - style: 'inverted', - size: 6 - }, - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'], - title: { - text: 'Month' - } - }, - yaxis: { - title: { - text: 'Temperature' - }, - min: 5, - max: 40 - }, - legend: { - position: 'top', - horizontalAlign: 'right', - floating: true, - offsetY: -25, - offsetX: -5 - }, - responsive: [{ - breakpoint: 600, - options: { - chart: { - toolbar: { - show: false - } - }, - legend: { - show: false - }, - } - }] - } - - var chart = new ApexCharts( - document.querySelector("#line_chart_datalabel"), - options - ); - chart.render(); -} - - - -// Dashed line chart -var linechartDashedColors = getChartColorsArray("line_chart_dashed"); -if (linechartDashedColors) { - var options = { - chart: { - height: 380, - type: 'line', - zoom: { - enabled: false - }, - toolbar: { - show: false, - } - }, - colors: linechartDashedColors, - dataLabels: { - enabled: false - }, - stroke: { - width: [3, 4, 3], - curve: 'straight', - dashArray: [0, 8, 5] - }, - series: [{ - name: "Session Duration", - data: [45, 52, 38, 24, 33, 26, 21, 20, 6, 8, 15, 10] - }, - { - name: "Page Views", - data: [36, 42, 60, 42, 13, 18, 29, 37, 36, 51, 32, 35] - }, - { - name: 'Total Visits', - data: [89, 56, 74, 98, 72, 38, 64, 46, 84, 58, 46, 49] - } - ], - title: { - text: 'Page Statistics', - align: 'left', - style: { - fontWeight: 500, - }, - }, - markers: { - size: 0, - - hover: { - sizeOffset: 6 - } - }, - xaxis: { - categories: ['01 Jan', '02 Jan', '03 Jan', '04 Jan', '05 Jan', '06 Jan', '07 Jan', '08 Jan', '09 Jan', - '10 Jan', '11 Jan', '12 Jan' - ], - }, - tooltip: { - y: [{ - title: { - formatter: function(val) { - return val + " (mins)" - } - } - }, { - title: { - formatter: function(val) { - return val + " per session" - } - } - }, { - title: { - formatter: function(val) { - return val; - } - } - }] - }, - grid: { - borderColor: '#f1f1f1', - } - } - - var chart = new ApexCharts( - document.querySelector("#line_chart_dashed"), - options - ); - - chart.render(); -} - - -// Line with Annotations - -var linechartannotationsColors = getChartColorsArray("line_chart_annotations"); -if (linechartannotationsColors) { - var options = { - series: [{ - data: series.monthDataSeries1.prices - }], - chart: { - height: 350, - type: 'line', - id: 'areachart-2', - toolbar: { - show: false, - } - }, - annotations: { - yaxis: [{ - y: 8200, - borderColor: '#038edc', - label: { - borderColor: '#038edc', - style: { - color: '#fff', - background: '#038edc', - }, - text: 'Support', - } - }, { - y: 8600, - y2: 9000, - borderColor: '#f7cc53', - fillColor: '#f7cc53', - opacity: 0.2, - label: { - borderColor: '#f7cc53', - style: { - fontSize: '10px', - color: '#000', - background: '#f7cc53', - }, - text: 'Y-axis range', - } - }], - xaxis: [{ - x: new Date('23 Nov 2017').getTime(), - strokeDashArray: 0, - borderColor: '#564ab1', - label: { - borderColor: '#564ab1', - style: { - color: '#fff', - background: '#564ab1', - }, - text: 'Anno Test', - } - }, { - x: new Date('26 Nov 2017').getTime(), - x2: new Date('28 Nov 2017').getTime(), - fillColor: '#51d28c', - opacity: 0.4, - label: { - borderColor: '#000', - style: { - fontSize: '10px', - color: '#fff', - background: '#000', - }, - offsetY: -10, - text: 'X-axis range', - } - }], - points: [{ - x: new Date('01 Dec 2017').getTime(), - y: 8607.55, - marker: { - size: 8, - fillColor: '#fff', - strokeColor: 'red', - radius: 2, - cssClass: 'apexcharts-custom-class' - }, - label: { - borderColor: '#f34e4e', - offsetY: 0, - style: { - color: '#fff', - background: '#f34e4e', - }, - - text: 'Point Annotation', - } - }, { - x: new Date('08 Dec 2017').getTime(), - y: 9340.85, - marker: { - size: 0 - }, - image: { - path: './assets/images/logo-sm.png', - width: 40, - height: 40 - } - }] - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight' - }, - colors: linechartannotationsColors, - grid: { - padding: { - right: 30, - left: 20 - } - }, - title: { - text: 'Line with Annotations', - align: 'left', - style: { - fontWeight: 500, - }, - }, - labels: series.monthDataSeries1.dates, - xaxis: { - type: 'datetime', - }, - }; - - var chart = new ApexCharts(document.querySelector("#line_chart_annotations"), options); - chart.render(); -} - - - -// Brush Chart Generate series - -function generateDayWiseTimeSeries(baseval, count, yrange) { - var i = 0; - var series = []; - while (i < count) { - var x = baseval; - var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; - - series.push([x, y]); - baseval += 86400000; - i++; - } - return series; -} - -var data = generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 185, { - min: 30, - max: 90 -}) - -// Brush Chart - -var brushchartLine2Colors = getChartColorsArray("brushchart_line2"); -if (brushchartLine2Colors) { - var options = { - series: [{ - data: data - }], - chart: { - id: 'chart2', - type: 'line', - height: 220, - toolbar: { - autoSelected: 'pan', - show: false - } - }, - colors: brushchartLine2Colors, - stroke: { - width: 3 - }, - dataLabels: { - enabled: false - }, - fill: { - opacity: 1, - }, - markers: { - size: 0 - }, - xaxis: { - type: 'datetime' - } - }; - - var chart = new ApexCharts(document.querySelector("#brushchart_line2"), options); - chart.render(); -} - -var brushchartLineColors = getChartColorsArray("brushchart_line"); -if (brushchartLineColors) { - var optionsLine = { - series: [{ - data: data - }], - chart: { - id: 'chart1', - height: 130, - type: 'area', - brush: { - target: 'chart2', - enabled: true - }, - selection: { - enabled: true, - xaxis: { - min: new Date('19 Jun 2017').getTime(), - max: new Date('14 Aug 2017').getTime() - } - }, - }, - colors: brushchartLineColors, - fill: { - type: 'gradient', - gradient: { - opacityFrom: 0.91, - opacityTo: 0.1, - } - }, - xaxis: { - type: 'datetime', - tooltip: { - enabled: false - } - }, - yaxis: { - tickAmount: 2 - } - }; - - var chartLine = new ApexCharts(document.querySelector("#brushchart_line"), optionsLine); - chartLine.render(); -} - -// Stepline Charts -var steplineChartColors = getChartColorsArray("line_chart_stepline"); -if (steplineChartColors) { - var options = { - series: [{ - data: [34, 44, 54, 21, 12, 43, 33, 23, 66, 66, 58] - }], - chart: { - type: 'line', - height: 350, - toolbar: { - show: false - }, - }, - stroke: { - curve: 'stepline', - }, - dataLabels: { - enabled: false - }, - title: { - text: 'Stepline Chart', - align: 'left', - style: { - fontWeight: 500, - }, - }, - markers: { - hover: { - sizeOffset: 4 - } - }, - colors: steplineChartColors - }; - - var chart = new ApexCharts(document.querySelector("#line_chart_stepline"), options); - chart.render(); -} - -// Gradient Line -var lineChartGradientColors = getChartColorsArray("line_chart_gradient"); -if (lineChartGradientColors) { - var options = { - series: [{ - name: 'Likes', - data: [4, 3, 10, 9, 29, 19, 22, 9, 12, 7, 19, 5, 13, 9, 17, 2, 7, 5] - }], - chart: { - height: 350, - type: 'line', - toolbar: { - show: false - }, - }, - stroke: { - width: 7, - curve: 'smooth' - }, - xaxis: { - type: 'datetime', - categories: ['1/11/2001', '2/11/2001', '3/11/2001', '4/11/2001', '5/11/2001', '6/11/2001', '7/11/2001', '8/11/2001', '9/11/2001', '10/11/2001', '11/11/2001', '12/11/2001', '1/11/2002', '2/11/2002', '3/11/2002', '4/11/2002', '5/11/2002', '6/11/2002'], - tickAmount: 10, - }, - title: { - text: 'Social Media', - align: 'left', - style: { - fontWeight: 500, - }, - }, - fill: { - type: 'gradient', - gradient: { - shade: 'dark', - gradientToColors: lineChartGradientColors, - shadeIntensity: 1, - type: 'horizontal', - opacityFrom: 1, - opacityTo: 1, - stops: [0, 100, 100, 100] - }, - }, - markers: { - size: 4, - colors: ["#038edc"], - strokeColors: "#fff", - strokeWidth: 2, - hover: { - size: 7, - } - }, - yaxis: { - min: -10, - max: 40, - title: { - text: 'Engagement', - }, - } - }; - - var chart = new ApexCharts(document.querySelector("#line_chart_gradient"), options); - chart.render(); -} - -// Missing Data -var linechartMissingDataColors = getChartColorsArray("line_chart_missing_data"); -if (linechartMissingDataColors) { - var options = { - series: [{ - name: 'Peter', - data: [5, 5, 10, 8, 7, 5, 4, null, null, null, 10, 10, 7, 8, 6, 9] - }, { - name: 'Johnny', - data: [10, 15, null, 12, null, 10, 12, 15, null, null, 12, null, 14, null, null, null] - }, { - name: 'David', - data: [null, null, null, null, 3, 4, 1, 3, 4, 6, 7, 9, 5, null, null, null] - }], - chart: { - height: 350, - type: 'line', - zoom: { - enabled: false - }, - animations: { - enabled: false - } - }, - stroke: { - width: [5, 5, 4], - curve: 'straight' - }, - labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], - title: { - text: 'Missing data (null values)', - style: { - fontWeight: 500, - }, - }, - xaxis: {}, - colors: linechartMissingDataColors - }; - - var chart = new ApexCharts(document.querySelector("#line_chart_missing_data"), options); - chart.render(); -} - -// Realtime Charts - -var lastDate = 0; -var data = []; -var TICKINTERVAL = 86400000; -var XAXISRANGE = 777600000; - -function getDayWiseTimeSeries(baseval, count, yrange) { - var i = 0; - while (i < count) { - var x = baseval; - var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; - - data.push({ - 'x': x, - 'y': y - }); - lastDate = baseval - baseval += TICKINTERVAL; - i++; - } -} - -getDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 10, { - min: 10, - max: 90 -}) - -function getNewSeries(baseval, yrange) { - var newDate = baseval + TICKINTERVAL; - lastDate = newDate - - for (var i = 0; i < data.length - 10; i++) { - // IMPORTANT - // we reset the x and y of the data which is out of drawing area - // to prevent memory leaks - data[i].x = newDate - XAXISRANGE - TICKINTERVAL - data[i].y = 0 - } - - data.push({ - x: newDate, - y: Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min - }) -} - -function resetData() { - // Alternatively, you can also reset the data at certain intervals to prevent creating a huge series - data = data.slice(data.length - 10, data.length); -} - - -// Realtime Charts - -var linechartrealtimeColors = getChartColorsArray("line_chart_realtime"); -if (linechartrealtimeColors) { - var options = { - series: [{ - data: data.slice() - }], - chart: { - id: 'realtime', - height: 350, - type: 'line', - animations: { - enabled: true, - easing: 'linear', - dynamicAnimation: { - speed: 1000 - } - }, - toolbar: { - show: false - }, - zoom: { - enabled: false - } - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'smooth' - }, - title: { - text: 'Dynamic Updating Chart', - align: 'left', - style: { - fontWeight: 500, - }, - }, - markers: { - size: 0 - }, - colors: linechartrealtimeColors, - xaxis: { - type: 'datetime', - range: XAXISRANGE, - }, - yaxis: { - max: 100 - }, - legend: { - show: false - }, - }; - - var charts = new ApexCharts(document.querySelector("#line_chart_realtime"), options); - charts.render(); -} - - -window.setInterval(function () { - getNewSeries(lastDate, { - min: 10, - max: 90 - }) - - charts.updateSeries([{ - data: data - }]) -}, 1000) - - - -// Syncing Charts - -function generateDayWiseTimeSeriesline(baseval, count, yrange) { - var i = 0; - var series = []; - while (i < count) { - var x = baseval; - var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; - - series.push([x, y]); - baseval += 86400000; - i++; - } - return series; -} - -var chartSyncingLine = getChartColorsArray("chart-syncing-line"); -if (chartSyncingLine) { - var optionsLine = { - series: [{ - data: generateDayWiseTimeSeriesline(new Date('11 Feb 2017').getTime(), 20, { - min: 10, - max: 60 - }) - }], - chart: { - id: 'fb', - group: 'social', - type: 'line', - height: 160, - toolbar: { - show: false - }, - }, - colors: chartSyncingLine, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight', - width: 3, - }, - toolbar: { - tools: { - selection: false - } - }, - markers: { - size: 4, - hover: { - size: 6 - } - }, - tooltip: { - followCursor: false, - x: { - show: false - }, - marker: { - show: false - }, - y: { - title: { - formatter: function () { - return '' - } - } - } - }, - grid: { - clipMarkers: false - }, - yaxis: { - tickAmount: 2 - }, - xaxis: { - type: 'datetime' - } - }; - var chartLine = new ApexCharts(document.querySelector("#chart-syncing-line"), optionsLine); - chartLine.render(); -} - -var chartSyncingLine2 = getChartColorsArray("chart-syncing-line2"); -if (chartSyncingLine2) { - var optionsLine2 = { - series: [{ - data: generateDayWiseTimeSeriesline(new Date('11 Feb 2017').getTime(), 20, { - min: 10, - max: 30 - }) - }], - chart: { - id: 'tw', - group: 'social', - type: 'line', - height: 160, - toolbar: { - show: false - }, - }, - colors: chartSyncingLine2, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight', - width: 3, - }, - toolbar: { - tools: { - selection: false - } - }, - markers: { - size: 4, - hover: { - size: 6 - } - }, - tooltip: { - followCursor: false, - x: { - show: false - }, - marker: { - show: false - }, - y: { - title: { - formatter: function () { - return '' - } - } - } - }, - grid: { - clipMarkers: false - }, - yaxis: { - tickAmount: 2 - }, - xaxis: { - type: 'datetime' - } - }; - var chartLine2 = new ApexCharts(document.querySelector("#chart-syncing-line2"), optionsLine2); - chartLine2.render(); -} - -var chartSyncingArea = getChartColorsArray("chart-syncing-area"); -if (chartSyncingArea) { - var optionsArea = { - series: [{ - data: generateDayWiseTimeSeriesline(new Date('11 Feb 2017').getTime(), 20, { - min: 10, - max: 60 - }) - }], - chart: { - id: 'yt', - group: 'social', - type: 'area', - height: 160, - toolbar: { - show: false - }, - }, - colors: chartSyncingArea, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight', - width: 3, - }, - toolbar: { - tools: { - selection: false - } - }, - markers: { - size: 4, - hover: { - size: 6 - } - }, - tooltip: { - followCursor: false, - x: { - show: false - }, - marker: { - show: false - }, - y: { - title: { - formatter: function () { - return '' - } - } - } - }, - grid: { - clipMarkers: false - }, - yaxis: { - tickAmount: 2 - }, - xaxis: { - type: 'datetime' - } - }; - var chartArea = new ApexCharts(document.querySelector("#chart-syncing-area"), optionsArea); - chartArea.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-mixed.init.js b/src/main/resources/static/assets/js/pages/apexcharts-mixed.init.js deleted file mode 100644 index 4ff453c..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-mixed.init.js +++ /dev/null @@ -1,370 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Mixed Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Mixed - Line Column Chart -var chartLineColumnColors = getChartColorsArray("line_column_chart"); -if(chartLineColumnColors){ -var options = { - series: [{ - name: 'Website Blog', - type: 'column', - data: [440, 505, 414, 671, 227, 413, 201, 352, 752, 320, 257, 160] - }, { - name: 'Social Media', - type: 'line', - data: [23, 42, 35, 27, 43, 22, 17, 31, 22, 22, 12, 16] - }], - chart: { - height: 350, - type: 'line', - toolbar: { - show: false, - } - }, - stroke: { - width: [0, 4] - }, - title: { - text: 'Traffic Sources', - style: { - fontWeight: 500, - }, - }, - dataLabels: { - enabled: true, - enabledOnSeries: [1] - }, - labels: ['01 Jan 2001', '02 Jan 2001', '03 Jan 2001', '04 Jan 2001', '05 Jan 2001', '06 Jan 2001', '07 Jan 2001', '08 Jan 2001', '09 Jan 2001', '10 Jan 2001', '11 Jan 2001', '12 Jan 2001'], - xaxis: { - type: 'datetime' - }, - yaxis: [{ - title: { - text: 'Website Blog', - style: { - fontWeight: 500, - }, - }, - - }, { - opposite: true, - title: { - text: 'Social Media', - style: { - fontWeight: 500, - }, - } - }], - colors: chartLineColumnColors -}; - -var chart = new ApexCharts(document.querySelector("#line_column_chart"), options); -chart.render(); -} - -// Multiple Y-Axis Charts -var chartMultiColors = getChartColorsArray("multi_chart"); -if(chartMultiColors){ -var options = { - series: [{ - name: 'Income', - type: 'column', - data: [1.4, 2, 2.5, 1.5, 2.5, 2.8, 3.8, 4.6] - }, { - name: 'Cashflow', - type: 'column', - data: [1.1, 3, 3.1, 4, 4.1, 4.9, 6.5, 8.5] - }, { - name: 'Revenue', - type: 'line', - data: [20, 29, 37, 36, 44, 45, 50, 58] - }], - chart: { - height: 350, - type: 'line', - stacked: false, - toolbar: { - show: false, - } - }, - dataLabels: { - enabled: false - }, - stroke: { - width: [1, 1, 4] - }, - title: { - text: 'XYZ - Stock Analysis (2009 - 2016)', - align: 'left', - offsetX: 110, - style: { - fontWeight: 500, - }, - }, - xaxis: { - categories: [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016], - }, - yaxis: [{ - axisTicks: { - show: true, - }, - axisBorder: { - show: true, - color: '#038edc' - }, - labels: { - style: { - colors: '#038edc', - } - }, - title: { - text: "Income (thousand crores)", - style: { - color: '#038edc', - fontWeight: 600 - } - }, - tooltip: { - enabled: true - } - }, - { - seriesName: 'Income', - opposite: true, - axisTicks: { - show: true, - }, - axisBorder: { - show: true, - color: '#038edc' - }, - labels: { - style: { - colors: '#038edc', - } - }, - title: { - text: "Operating Cashflow (thousand crores)", - style: { - color: '#038edc', - fontWeight: 600 - } - }, - }, - { - seriesName: 'Revenue', - opposite: true, - axisTicks: { - show: true, - }, - axisBorder: { - show: true, - color: '#51d28c' - }, - labels: { - style: { - colors: '#51d28c', - }, - }, - title: { - text: "Revenue (thousand crores)", - style: { - color: '#51d28c', - fontWeight: 600 - } - } - }, - ], - tooltip: { - fixed: { - enabled: true, - position: 'topLeft', // topRight, topLeft, bottomRight, bottomLeft - offsetY: 30, - offsetX: 60 - }, - }, - legend: { - horizontalAlign: 'left', - offsetX: 40 - }, - colors: chartMultiColors -}; - -var chart = new ApexCharts(document.querySelector("#multi_chart"), options); -chart.render(); -} - -// Line & Area Charts -var chartLineAreaColors = getChartColorsArray("line_area_chart"); -if(chartLineAreaColors){ -var options = { - series: [{ - name: 'TEAM A', - type: 'area', - data: [44, 55, 31, 47, 31, 43, 26, 41, 31, 47, 33] - }, { - name: 'TEAM B', - type: 'line', - data: [55, 69, 45, 61, 43, 54, 37, 52, 44, 61, 43] - }], - chart: { - height: 350, - type: 'line', - toolbar: { - show: false, - } - }, - stroke: { - curve: 'smooth' - }, - fill: { - type: 'solid', - opacity: [0.35, 1], - }, - labels: ['Dec 01', 'Dec 02', 'Dec 03', 'Dec 04', 'Dec 05', 'Dec 06', 'Dec 07', 'Dec 08', 'Dec 09 ', 'Dec 10', 'Dec 11'], - markers: { - size: 0 - }, - yaxis: [{ - title: { - text: 'Series A', - }, - }, - { - opposite: true, - title: { - text: 'Series B', - }, - }, - ], - tooltip: { - shared: true, - intersect: false, - y: { - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0) + " points"; - } - return y; - } - } - }, - colors: chartLineAreaColors -}; - -var chart = new ApexCharts(document.querySelector("#line_area_chart"), options); -chart.render(); -} - -// Line Cloumn & Area Charts - -var chartLineAreaMultiColors = getChartColorsArray("line_area_charts"); -if(chartLineAreaMultiColors){ -var options = { - series: [{ - name: 'TEAM A', - type: 'column', - data: [23, 11, 22, 27, 13, 22, 37, 21, 44, 22, 30] - }, { - name: 'TEAM B', - type: 'area', - data: [44, 55, 41, 67, 22, 43, 21, 41, 56, 27, 43] - }, { - name: 'TEAM C', - type: 'line', - data: [30, 25, 36, 30, 45, 35, 64, 52, 59, 36, 39] - }], - chart: { - height: 350, - type: 'line', - stacked: false, - toolbar: { - show: false, - } - }, - stroke: { - width: [0, 2, 5], - curve: 'smooth' - }, - plotOptions: { - bar: { - columnWidth: '50%' - } - }, - - fill: { - opacity: [0.85, 0.25, 1], - gradient: { - inverseColors: false, - shade: 'light', - type: "vertical", - opacityFrom: 0.85, - opacityTo: 0.55, - stops: [0, 100, 100, 100] - } - }, - labels: ['01/01/2003', '02/01/2003', '03/01/2003', '04/01/2003', '05/01/2003', '06/01/2003', '07/01/2003', - '08/01/2003', '09/01/2003', '10/01/2003', '11/01/2003' - ], - markers: { - size: 0 - }, - xaxis: { - type: 'datetime' - }, - yaxis: { - title: { - text: 'Points', - }, - min: 0 - }, - tooltip: { - shared: true, - intersect: false, - y: { - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0) + " points"; - } - return y; - - } - } - }, - colors: chartLineAreaMultiColors -}; - -var chart = new ApexCharts(document.querySelector("#line_area_charts"), options); -chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-pie.init.js b/src/main/resources/static/assets/js/pages/apexcharts-pie.init.js deleted file mode 100644 index 1c44350..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-pie.init.js +++ /dev/null @@ -1,348 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Pie Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Simple Pie Charts - -var chartPieBasicColors = getChartColorsArray("simple_pie_chart"); -if(chartPieBasicColors){ -var options = { - series: [44, 55, 13, 43, 22], - chart: { - height: 300, - type: 'pie', - }, - labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'], - legend: { - position: 'bottom' - }, - dataLabels: { - dropShadow: { - enabled: false, - } - }, - colors: chartPieBasicColors -}; - -var chart = new ApexCharts(document.querySelector("#simple_pie_chart"), options); -chart.render(); -} - -// Simple Donut Charts -var chartDonutBasicColors = getChartColorsArray("simple_dount_chart"); -if(chartDonutBasicColors){ -var options = { - series: [44, 55, 41, 17, 15], - chart: { - height: 300, - type: 'donut', - }, - legend: { - position: 'bottom' - }, - dataLabels: { - dropShadow: { - enabled: false, - } - }, - colors: chartDonutBasicColors -}; - -var chart = new ApexCharts(document.querySelector("#simple_dount_chart"), options); -chart.render(); -} - -// Updating Donut Charts -var chartDonutupdatingColors = getChartColorsArray("updating_donut_chart"); -if(chartDonutupdatingColors){ -var options = { - series: [44, 55, 13, 33], - chart: { - height: 280, - type: 'donut', - }, - dataLabels: { - enabled: false - }, - legend: { - position: 'bottom' - }, - colors: chartDonutupdatingColors -}; - -var upadatedonutchart = new ApexCharts(document.querySelector("#updating_donut_chart"), options); -upadatedonutchart.render(); - -function appendData() { - var arr = upadatedonutchart.w.globals.series.slice() - arr.push(Math.floor(Math.random() * (100 - 1 + 1)) + 1) - return arr; -} - -function removeData() { - var arr = upadatedonutchart.w.globals.series.slice() - arr.pop() - return arr; -} - -function randomize() { - return upadatedonutchart.w.globals.series.map(function () { - return Math.floor(Math.random() * (100 - 1 + 1)) + 1 - }) -} - -function reset() { - return options.series -} - -document.querySelector("#randomize").addEventListener("click", function () { - upadatedonutchart.updateSeries(randomize()) -}) - -document.querySelector("#add").addEventListener("click", function () { - upadatedonutchart.updateSeries(appendData()) -}) - -document.querySelector("#remove").addEventListener("click", function () { - upadatedonutchart.updateSeries(removeData()) -}) - -document.querySelector("#reset").addEventListener("click", function () { - upadatedonutchart.updateSeries(reset()) -}) -} - -// Gradient Donut Chart -var chartPieGradientColors = getChartColorsArray("gradient_chart"); -if(chartPieGradientColors){ -var options = { - series: [44, 55, 41, 17, 15], - chart: { - height: 300, - type: 'donut', - }, - plotOptions: { - pie: { - startAngle: -90, - endAngle: 270 - } - }, - dataLabels: { - enabled: false - }, - fill: { - type: 'gradient', - }, - legend: { - formatter: function (val, opts) { - return val + " - " + opts.w.globals.series[opts.seriesIndex] - } - }, - title: { - text: 'Gradient Donut with custom Start-angle', - style: { - fontWeight: 500, - }, - }, - legend: { - position: 'bottom' - }, - colors: chartPieGradientColors -}; - -var chart = new ApexCharts(document.querySelector("#gradient_chart"), options); -chart.render(); -} - -// Pattern Donut chart -var chartPiePatternColors = getChartColorsArray("pattern_chart"); -if(chartPiePatternColors){ -var options = { - series: [44, 55, 41, 17, 15], - chart: { - height: 300, - type: 'donut', - dropShadow: { - enabled: true, - color: '#111', - top: -1, - left: 3, - blur: 3, - opacity: 0.2 - } - }, - stroke: { - width: 0, - }, - plotOptions: { - pie: { - donut: { - labels: { - show: true, - total: { - showAlways: true, - show: true - } - } - } - } - }, - labels: ["Comedy", "Action", "SciFi", "Drama", "Horror"], - dataLabels: { - dropShadow: { - blur: 3, - opacity: 0.8 - } - }, - fill: { - type: 'pattern', - opacity: 1, - pattern: { - enabled: true, - style: ['verticalLines', 'squares', 'horizontalLines', 'circles', 'slantedLines'], - }, - }, - states: { - hover: { - filter: 'none' - } - }, - theme: { - palette: 'palette2' - }, - title: { - text: "Favourite Movie Type", - style: { - fontWeight: 500, - }, - }, - legend: { - position: 'bottom' - }, - colors: chartPiePatternColors -}; - -var chart = new ApexCharts(document.querySelector("#pattern_chart"), options); -chart.render(); -} - -// Pie Chart with Image Fill -var chartPieImageColors = getChartColorsArray("image_pie_chart"); -if(chartPieImageColors){ -var options = { - series: [44, 33, 54, 45], - chart: { - height: 300, - type: 'pie', - }, - colors: ['#93C3EE', '#E5C6A0', '#669DB5', '#94A74A'], - fill: { - type: 'image', - opacity: 0.85, - image: { - src: ['./assets/images/small/img-1.jpg', './assets/images/small/img-2.jpg', './assets/images/small/img-3.jpg', './assets/images/small/img-4.jpg'], - width: 25, - imagedHeight: 25 - }, - }, - stroke: { - width: 4 - }, - dataLabels: { - enabled: true, - style: { - colors: ['#111'] - }, - background: { - enabled: true, - foreColor: '#fff', - borderWidth: 0 - } - }, - legend: { - position: 'bottom' - } -}; - -var chart = new ApexCharts(document.querySelector("#image_pie_chart"), options); -chart.render(); -} - -// monochrome_pie_chart -var options = { - series: [25, 15, 44, 55, 41, 17], - chart: { - height: 300, - type: 'pie', - }, - labels: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - theme: { - monochrome: { - enabled: true, - color: '#405189', - shadeTo: 'light', - shadeIntensity: 0.6 - } - }, - - plotOptions: { - pie: { - dataLabels: { - offset: -5 - } - } - }, - title: { - text: "Monochrome Pie", - style: { - fontWeight: 500, - }, - }, - dataLabels: { - formatter: function (val, opts) { - var name = opts.w.globals.labels[opts.seriesIndex]; - return [name, val.toFixed(1) + '%']; - }, - dropShadow: { - enabled: false, - } - }, - legend: { - show: false - } -}; - -if(document.querySelector("#monochrome_pie_chart")){ - var chart = new ApexCharts(document.querySelector("#monochrome_pie_chart"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-polararea.init.js b/src/main/resources/static/assets/js/pages/apexcharts-polararea.init.js deleted file mode 100644 index e508cd6..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-polararea.init.js +++ /dev/null @@ -1,108 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Polar Area Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Basic Polar Area -var chartPolarareaBasicColors = getChartColorsArray("basic_polar_area"); -if(chartPolarareaBasicColors){ -var options = { - series: [14, 23, 21, 17, 15, 10, 12, 17, 21], - chart: { - type: 'polarArea', - width: 400, - }, - labels: ['Series A', 'Series B', 'Series C', 'Series D', 'Series E', 'Series F', 'Series G', 'Series H', 'Series I'], - stroke: { - colors: ['#fff'] - }, - fill: { - opacity: 0.8 - }, - - legend: { - position: 'bottom' - }, - colors: chartPolarareaBasicColors -}; - -var chart = new ApexCharts(document.querySelector("#basic_polar_area"), options); -chart.render(); -} -// Polar-Area Monochrome Charts - -var options = { - series: [42, 47, 52, 58, 65], - chart: { - width: 400, - type: 'polarArea' - }, - labels: ['Rose A', 'Rose B', 'Rose C', 'Rose D', 'Rose E'], - fill: { - opacity: 1 - }, - stroke: { - width: 1, - colors: undefined - }, - yaxis: { - show: false - }, - legend: { - position: 'bottom' - }, - plotOptions: { - polarArea: { - rings: { - strokeWidth: 0 - }, - spokes: { - strokeWidth: 0 - }, - } - }, - theme: { - mode: 'light', - palette: 'palette1', - monochrome: { - enabled: true, - shadeTo: 'light', - color: '#405189', - shadeIntensity: 0.6 - } - } -}; - -if(document.querySelector("#monochrome_polar_area")){ - var chart = new ApexCharts(document.querySelector("#monochrome_polar_area"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-radar.init.js b/src/main/resources/static/assets/js/pages/apexcharts-radar.init.js deleted file mode 100644 index f5c910e..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-radar.init.js +++ /dev/null @@ -1,171 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.comom -File: Radar Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Basic Radar Chart -var chartRadarBasicColors = getChartColorsArray("basic_radar"); -if(chartRadarBasicColors){ -var options = { - series: [{ - name: 'Series 1', - data: [80, 50, 30, 40, 100, 20], - }], - chart: { - height: 350, - type: 'radar', - toolbar: { - show: false - } - }, - colors: chartRadarBasicColors, - xaxis: { - categories: ['January', 'February', 'March', 'April', 'May', 'June'] - } -}; - -var chart = new ApexCharts(document.querySelector("#basic_radar"), options); -chart.render(); -} - -// Radar Chart - Multi series -var chartRadarMultiColors = getChartColorsArray("multi_radar"); -if(chartRadarMultiColors){ -var options = { - series: [{ - name: 'Series 1', - data: [80, 50, 30, 40, 100, 20], - }, - { - name: 'Series 2', - data: [20, 30, 40, 80, 20, 80], - }, - { - name: 'Series 3', - data: [44, 76, 78, 13, 43, 10], - } - ], - chart: { - height: 350, - type: 'radar', - dropShadow: { - enabled: true, - blur: 1, - left: 1, - top: 1 - }, - toolbar: { - show: false - }, - }, - stroke: { - width: 2 - }, - fill: { - opacity: 0.2 - }, - markers: { - size: 0 - }, - colors: chartRadarMultiColors, - xaxis: { - categories: ['2014', '2015', '2016', '2017', '2018', '2019'] - } -}; -var chart = new ApexCharts(document.querySelector("#multi_radar"), options); -chart.render(); -} - -// Polygon - Radar Charts -var chartRadarPolyradarColors = getChartColorsArray("polygon_radar"); -if(chartRadarPolyradarColors){ -var options = { - series: [{ - name: 'Series 1', - data: [20, 100, 40, 30, 50, 80, 33], - }], - chart: { - height: 350, - type: 'radar', - toolbar: { - show: false - }, - }, - dataLabels: { - enabled: true - }, - plotOptions: { - radar: { - size: 140, - - } - }, - title: { - text: 'Radar with Polygon Fill', - style: { - fontWeight: 500, - }, - }, - colors: chartRadarPolyradarColors, - markers: { - size: 4, - colors: ['#fff'], - strokeColor: '#f34e4e', - strokeWidth: 2, - }, - tooltip: { - y: { - formatter: function (val) { - return val - } - } - }, - xaxis: { - categories: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] - }, - yaxis: { - tickAmount: 7, - labels: { - formatter: function (val, i) { - if (i % 2 === 0) { - return val - } else { - return '' - } - } - } - } -}; - -var chart = new ApexCharts(document.querySelector("#polygon_radar"), options); -chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-radialbar.init.js b/src/main/resources/static/assets/js/pages/apexcharts-radialbar.init.js deleted file mode 100644 index 9f9b24a..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-radialbar.init.js +++ /dev/null @@ -1,399 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Radialbar Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Radialbar Charts -var chartRadialbarBasicColors = getChartColorsArray("basic_radialbar"); -if(chartRadialbarBasicColors){ -var options = { - series: [70], - chart: { - height: 350, - type: 'radialBar', - }, - plotOptions: { - radialBar: { - hollow: { - size: '70%', - } - }, - }, - labels: ['Cricket'], - colors: chartRadialbarBasicColors -}; - -var chart = new ApexCharts(document.querySelector("#basic_radialbar"), options); -chart.render(); -} - -// Multi-Radial Bar -var chartRadialbarMultipleColors = getChartColorsArray("multiple_radialbar"); -if(chartRadialbarMultipleColors){ -var options = { - series: [44, 55, 67, 83], - chart: { - height: 350, - type: 'radialBar', - }, - plotOptions: { - radialBar: { - dataLabels: { - name: { - fontSize: '22px', - }, - value: { - fontSize: '16px', - }, - total: { - show: true, - label: 'Total', - formatter: function (w) { - return 249 - } - } - } - } - }, - labels: ['Apples', 'Oranges', 'Bananas', 'Berries'], - colors: chartRadialbarMultipleColors -}; - -var chart = new ApexCharts(document.querySelector("#multiple_radialbar"), options); -chart.render(); -} - -// Circle Chart - Custom Angle -var chartRadialbarCircleColors = getChartColorsArray("circle_radialbar"); -if(chartRadialbarCircleColors){ -var options = { - series: [76, 67, 61, 55], - chart: { - height: 350, - type: 'radialBar', - }, - plotOptions: { - radialBar: { - offsetY: 0, - startAngle: 0, - endAngle: 270, - hollow: { - margin: 5, - size: '30%', - background: 'transparent', - image: undefined, - }, - dataLabels: { - name: { - show: false, - }, - value: { - show: false, - } - } - } - }, - colors: chartRadialbarCircleColors, - labels: ['Vimeo', 'Messenger', 'Facebook', 'LinkedIn'], - legend: { - show: true, - floating: true, - fontSize: '16px', - position: 'left', - offsetX: 160, - offsetY: 15, - labels: { - useSeriesColors: true, - }, - markers: { - size: 0 - }, - formatter: function (seriesName, opts) { - return seriesName + ": " + opts.w.globals.series[opts.seriesIndex] - }, - itemMargin: { - vertical: 3 - } - }, - responsive: [{ - breakpoint: 480, - options: { - legend: { - show: false - } - } - }] -}; -var chart = new ApexCharts(document.querySelector("#circle_radialbar"), options); -chart.render(); -} - -// Gradient Radialbar -var chartRadialbarGradientColors = getChartColorsArray("gradient_radialbar"); -if(chartRadialbarGradientColors){ -var options = { - series: [75], - chart: { - height: 350, - type: 'radialBar', - toolbar: { - show: false - } - }, - plotOptions: { - radialBar: { - startAngle: -135, - endAngle: 225, - hollow: { - margin: 0, - size: '70%', - image: undefined, - imageOffsetX: 0, - imageOffsetY: 0, - position: 'front', - }, - track: { - strokeWidth: '67%', - margin: 0, // margin is in pixels - - }, - - dataLabels: { - show: true, - name: { - offsetY: -10, - show: true, - color: '#888', - fontSize: '17px' - }, - value: { - formatter: function (val) { - return parseInt(val); - }, - color: '#111', - fontSize: '36px', - show: true, - } - } - } - }, - fill: { - type: 'gradient', - gradient: { - shade: 'dark', - type: 'horizontal', - shadeIntensity: 0.5, - gradientToColors: chartRadialbarGradientColors, - inverseColors: true, - opacityFrom: 1, - opacityTo: 1, - stops: [0, 100] - } - }, - stroke: { - lineCap: 'round' - }, - labels: ['Percent'], -}; - -var chart = new ApexCharts(document.querySelector("#gradient_radialbar"), options); -chart.render(); -} - -// Stroked Gauge -var chartStorkeRadialbarColors = getChartColorsArray("stroked_radialbar"); -if(chartStorkeRadialbarColors){ -var options = { - series: [67], - chart: { - height: 326, - type: 'radialBar', - offsetY: -10 - }, - plotOptions: { - radialBar: { - startAngle: -135, - endAngle: 135, - dataLabels: { - name: { - fontSize: '16px', - color: undefined, - offsetY: 120 - }, - value: { - offsetY: 76, - fontSize: '22px', - color: undefined, - formatter: function (val) { - return val + "%"; - } - } - } - } - }, - fill: { - type: 'gradient', - gradient: { - shade: 'dark', - shadeIntensity: 0.15, - inverseColors: false, - opacityFrom: 1, - opacityTo: 1, - stops: [0, 50, 65, 91] - }, - }, - stroke: { - dashArray: 4 - }, - labels: ['Median Ratio'], - colors: chartStorkeRadialbarColors -}; - -var chart = new ApexCharts(document.querySelector("#stroked_radialbar"), options); -chart.render(); -} - - -// Radialbars with Image -var chartStorkeRadialbarColors = getChartColorsArray("stroked_radialbar"); -if (chartStorkeRadialbarColors) { - var options = { - series: [67], - chart: { - height: 315, - type: 'radialBar', - }, - plotOptions: { - radialBar: { - hollow: { - margin: 15, - size: '65%', - image: './assets/images/comingsoon.png', - imageWidth: 56, - imageHeight: 56, - imageClipped: false - }, - dataLabels: { - name: { - show: false, - color: '#fff' - }, - value: { - show: true, - color: '#333', - offsetY: 65, - fontSize: '22px' - } - } - } - }, - fill: { - type: 'image', - image: { - src: ['./assets/images/small/img-4.jpg'], - } - }, - stroke: { - lineCap: 'round' - }, - labels: ['Volatility'], - }; - - var chart = new ApexCharts(document.querySelector("#radialbar_with_img"), options); - chart.render(); -}; - - -// Semi Circle -var chartSemiRadialbarColors = getChartColorsArray("semi_radialbar"); -if(chartSemiRadialbarColors){ -var options = { - series: [76], - chart: { - type: 'radialBar', - height: 350, - offsetY: -20, - sparkline: { - enabled: true - } - }, - plotOptions: { - radialBar: { - startAngle: -90, - endAngle: 90, - track: { - background: "#e7e7e7", - strokeWidth: '97%', - margin: 5, // margin is in pixels - dropShadow: { - enabled: true, - top: 2, - left: 0, - color: '#999', - opacity: 1, - blur: 2 - } - }, - dataLabels: { - name: { - show: false - }, - value: { - offsetY: -2, - fontSize: '22px' - } - } - } - }, - grid: { - padding: { - top: -10 - } - }, - fill: { - type: 'gradient', - gradient: { - shade: 'light', - shadeIntensity: 0.4, - inverseColors: false, - opacityFrom: 1, - opacityTo: 1, - stops: [0, 50, 53, 91] - }, - }, - labels: ['Average Results'], - colors: chartSemiRadialbarColors -}; - -var chart = new ApexCharts(document.querySelector("#semi_radialbar"), options); -chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-scatter.init.js b/src/main/resources/static/assets/js/pages/apexcharts-scatter.init.js deleted file mode 100644 index 1cabc6b..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-scatter.init.js +++ /dev/null @@ -1,359 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Scatter Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Basic Scatter Charts -var chartScatterBasicColors = getChartColorsArray("basic_scatter"); -if(chartScatterBasicColors){ -var options = { - series: [{ - name: "SAMPLE A", - data: [ - [16.4, 5.4], - [21.7, 2], - [25.4, 3], - [19, 2], - [10.9, 1], - [13.6, 3.2], - [10.9, 7.4], - [10.9, 0], - [10.9, 8.2], - [16.4, 0], - [16.4, 1.8], - [13.6, 0.3], - [13.6, 0], - [29.9, 0], - [27.1, 2.3], - [16.4, 0], - [13.6, 3.7], - [10.9, 5.2], - [16.4, 6.5], - [10.9, 0], - [24.5, 7.1], - [10.9, 0], - [8.1, 4.7], - [19, 0], - [21.7, 1.8], - [27.1, 0], - [24.5, 0], - [27.1, 0], - [29.9, 1.5], - [27.1, 0.8], - [22.1, 2] - ] - }, { - name: "SAMPLE B", - data: [ - [36.4, 13.4], - [1.7, 11], - [5.4, 8], - [9, 17], - [1.9, 4], - [3.6, 12.2], - [1.9, 14.4], - [1.9, 9], - [1.9, 13.2], - [1.4, 7], - [6.4, 8.8], - [3.6, 4.3], - [1.6, 10], - [9.9, 2], - [7.1, 15], - [1.4, 0], - [3.6, 13.7], - [1.9, 15.2], - [6.4, 16.5], - [0.9, 10], - [4.5, 17.1], - [10.9, 10], - [0.1, 14.7], - [9, 10], - [12.7, 11.8], - [2.1, 10], - [2.5, 10], - [27.1, 10], - [2.9, 11.5], - [7.1, 10.8], - [2.1, 12] - ] - }, { - name: "SAMPLE C", - data: [ - [21.7, 3], - [23.6, 3.5], - [24.6, 3], - [29.9, 3], - [21.7, 20], - [23, 2], - [10.9, 3], - [28, 4], - [27.1, 0.3], - [16.4, 4], - [13.6, 0], - [19, 5], - [22.4, 3], - [24.5, 3], - [32.6, 3], - [27.1, 4], - [29.6, 6], - [31.6, 8], - [21.6, 5], - [20.9, 4], - [22.4, 0], - [32.6, 10.3], - [29.7, 20.8], - [24.5, 0.8], - [21.4, 0], - [21.7, 6.9], - [28.6, 7.7], - [15.4, 0], - [18.1, 0], - [33.4, 0], - [16.4, 0] - ] - }], - chart: { - height: 350, - type: 'scatter', - zoom: { - enabled: true, - type: 'xy' - }, - toolbar: { - show: false, - } - }, - xaxis: { - tickAmount: 10, - labels: { - formatter: function (val) { - return parseFloat(val).toFixed(1) - } - } - }, - yaxis: { - tickAmount: 7 - }, - colors: chartScatterBasicColors -}; - -var chart = new ApexCharts(document.querySelector("#basic_scatter"), options); -chart.render(); -} - -// Dtaetime - Scatter Charts - -function generateDayWiseTimeSeries(baseval, count, yrange) { - var i = 0; - var series = []; - while (i < count) { - var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; - - series.push([baseval, y]); - baseval += 86400000; - i++; - } - return series; -} - -var chartScatterDateTimeColors = getChartColorsArray("datetime_scatter"); -if(chartScatterDateTimeColors){ -var options = { - series: [{ - name: 'TEAM 1', - data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'TEAM 2', - data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 20, { - min: 10, - max: 60 - }) - }, - { - name: 'TEAM 3', - data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 30, { - min: 10, - max: 60 - }) - }, - { - name: 'TEAM 4', - data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 10, { - min: 10, - max: 60 - }) - }, - { - name: 'TEAM 5', - data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 30, { - min: 10, - max: 60 - }) - }, - ], - chart: { - height: 350, - type: 'scatter', - zoom: { - type: 'xy' - }, - toolbar: { - show: false, - } - }, - dataLabels: { - enabled: false - }, - grid: { - xaxis: { - lines: { - show: true - } - }, - yaxis: { - lines: { - show: true - } - }, - }, - xaxis: { - type: 'datetime', - }, - yaxis: { - max: 70 - }, - colors: chartScatterDateTimeColors -}; - -var chart = new ApexCharts(document.querySelector("#datetime_scatter"), options); -chart.render(); -} - -// Scatter - Images Charts -var chartScatterImagesColors = getChartColorsArray("images_scatter"); -if(chartScatterImagesColors){ -var options = { - series: [{ - name: 'User A', - data: [ - [16.4, 5.4], - [21.7, 4], - [25.4, 3], - [19, 2], - [10.9, 1], - [13.6, 3.2], - [10.9, 7], - [10.9, 8.2], - [16.4, 4], - [13.6, 4.3], - [13.6, 12], - [29.9, 3], - [10.9, 5.2], - [16.4, 6.5], - [10.9, 8], - [24.5, 7.1], - [10.9, 7], - [8.1, 4.7], - ] - }, { - name: 'User B', - data: [ - [6.4, 5.4], - [11.7, 4], - [15.4, 3], - [9, 2], - [10.9, 11], - [20.9, 7], - [12.9, 8.2], - [6.4, 14], - [11.6, 12] - ] - }], - chart: { - height: 350, - type: 'scatter', - animations: { - enabled: false, - }, - zoom: { - enabled: false, - }, - toolbar: { - show: false - } - }, - colors: chartScatterImagesColors, - xaxis: { - tickAmount: 10, - min: 0, - max: 40 - }, - yaxis: { - tickAmount: 7 - }, - markers: { - size: 20 - }, - fill: { - type: 'image', - opacity: 1, - image: { - src: ['./assets/images/users/avatar-1.jpg', './assets/images/users/avatar-2.jpg'], - width: 40, - height: 40 - } - }, - legend: { - labels: { - useSeriesColors: true - }, - markers: { - customHTML: [ - function () { - return '' - }, - function () { - return '' - } - ] - } - } -}; - -var chart = new ApexCharts(document.querySelector("#images_scatter"), options); -chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-timeline.init.js b/src/main/resources/static/assets/js/pages/apexcharts-timeline.init.js deleted file mode 100644 index 5e618a1..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-timeline.init.js +++ /dev/null @@ -1,640 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Timeline Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - - -// Basic Timeline Charts -var chartTimelineBasicColors = getChartColorsArray("basic_timeline"); -if(chartTimelineBasicColors){ -var options = { - series: [{ - data: [{ - x: 'Code', - y: [ - new Date('2019-03-02').getTime(), - new Date('2019-03-04').getTime() - ] - }, - { - x: 'Test', - y: [ - new Date('2019-03-04').getTime(), - new Date('2019-03-08').getTime() - ] - }, - { - x: 'Validation', - y: [ - new Date('2019-03-08').getTime(), - new Date('2019-03-12').getTime() - ] - }, - { - x: 'Deployment', - y: [ - new Date('2019-03-12').getTime(), - new Date('2019-03-18').getTime() - ] - } - ] - }], - chart: { - height: 350, - type: 'rangeBar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true - } - }, - xaxis: { - type: 'datetime' - }, - colors: chartTimelineBasicColors -}; - -var chart = new ApexCharts(document.querySelector("#basic_timeline"), options); -chart.render(); -} - - -// Different Color For Each Bar -var chartTimelineColors = getChartColorsArray("color_timeline"); -if(chartTimelineColors){ -var options = { - series: [{ - data: [{ - x: 'Analysis', - y: [ - new Date('2019-02-27').getTime(), - new Date('2019-03-04').getTime() - ], - fillColor: chartTimelineColors[0] - }, - { - x: 'Design', - y: [ - new Date('2019-03-04').getTime(), - new Date('2019-03-08').getTime() - ], - fillColor: chartTimelineColors[1] - }, - { - x: 'Coding', - y: [ - new Date('2019-03-07').getTime(), - new Date('2019-03-10').getTime() - ], - fillColor: chartTimelineColors[2] - }, - { - x: 'Testing', - y: [ - new Date('2019-03-08').getTime(), - new Date('2019-03-12').getTime() - ], - fillColor: chartTimelineColors[3] - }, - { - x: 'Deployment', - y: [ - new Date('2019-03-12').getTime(), - new Date('2019-03-17').getTime() - ], - fillColor: chartTimelineColors[4] - } - ] - }], - chart: { - height: 350, - type: 'rangeBar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - distributed: true, - dataLabels: { - hideOverflowingLabels: false - } - } - }, - dataLabels: { - enabled: true, - formatter: function (val, opts) { - var label = opts.w.globals.labels[opts.dataPointIndex] - var a = moment(val[0]) - var b = moment(val[1]) - var diff = b.diff(a, 'days') - return label + ': ' + diff + (diff > 1 ? ' days' : ' day') - }, - }, - xaxis: { - type: 'datetime' - }, - yaxis: { - show: true - }, - -}; - -var chart = new ApexCharts(document.querySelector("#color_timeline"), options); -chart.render(); -} - -// Multi Series Timeline -var chartTimelineMultiSeriesColors = getChartColorsArray("multi_series"); -if(chartTimelineMultiSeriesColors){ -var options = { - series: [{ - name: 'Bob', - data: [{ - x: 'Design', - y: [ - new Date('2019-03-05').getTime(), - new Date('2019-03-08').getTime() - ] - }, - { - x: 'Code', - y: [ - new Date('2019-03-08').getTime(), - new Date('2019-03-11').getTime() - ] - }, - { - x: 'Test', - y: [ - new Date('2019-03-11').getTime(), - new Date('2019-03-16').getTime() - ] - } - ] - }, - { - name: 'Joe', - data: [{ - x: 'Design', - y: [ - new Date('2019-03-02').getTime(), - new Date('2019-03-05').getTime() - ] - }, - { - x: 'Code', - y: [ - new Date('2019-03-06').getTime(), - new Date('2019-03-09').getTime() - ] - }, - { - x: 'Test', - y: [ - new Date('2019-03-10').getTime(), - new Date('2019-03-19').getTime() - ] - } - ] - } - ], - chart: { - height: 350, - type: 'rangeBar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true - } - }, - dataLabels: { - enabled: true, - formatter: function (val) { - var a = moment(val[0]) - var b = moment(val[1]) - var diff = b.diff(a, 'days') - return diff + (diff > 1 ? ' days' : ' day') - } - }, - fill: { - type: 'gradient', - gradient: { - shade: 'light', - type: 'vertical', - shadeIntensity: 0.25, - gradientToColors: undefined, - inverseColors: true, - opacityFrom: 1, - opacityTo: 1, - stops: [50, 0, 100, 100] - } - }, - xaxis: { - type: 'datetime' - }, - legend: { - position: 'top' - }, - colors: chartTimelineMultiSeriesColors -}; - -var chart = new ApexCharts(document.querySelector("#multi_series"), options); -chart.render(); -} - -// Advanced Timeline (Multiple Range) -var chartTimelineAdvancedColors = getChartColorsArray("advanced_timeline"); -if(chartTimelineAdvancedColors){ -var options = { - series: [{ - name: 'Bob', - data: [{ - x: 'Design', - y: [ - new Date('2019-03-05').getTime(), - new Date('2019-03-08').getTime() - ] - }, - { - x: 'Code', - y: [ - new Date('2019-03-02').getTime(), - new Date('2019-03-05').getTime() - ] - }, - { - x: 'Code', - y: [ - new Date('2019-03-05').getTime(), - new Date('2019-03-07').getTime() - ] - }, - { - x: 'Test', - y: [ - new Date('2019-03-03').getTime(), - new Date('2019-03-09').getTime() - ] - }, - { - x: 'Test', - y: [ - new Date('2019-03-08').getTime(), - new Date('2019-03-11').getTime() - ] - }, - { - x: 'Validation', - y: [ - new Date('2019-03-11').getTime(), - new Date('2019-03-16').getTime() - ] - }, - { - x: 'Design', - y: [ - new Date('2019-03-01').getTime(), - new Date('2019-03-03').getTime() - ] - } - ] - }, - { - name: 'Joe', - data: [{ - x: 'Design', - y: [ - new Date('2019-03-02').getTime(), - new Date('2019-03-05').getTime() - ] - }, - { - x: 'Test', - y: [ - new Date('2019-03-06').getTime(), - new Date('2019-03-16').getTime() - ] - }, - { - x: 'Code', - y: [ - new Date('2019-03-03').getTime(), - new Date('2019-03-07').getTime() - ] - }, - { - x: 'Deployment', - y: [ - new Date('2019-03-20').getTime(), - new Date('2019-03-22').getTime() - ] - }, - { - x: 'Design', - y: [ - new Date('2019-03-10').getTime(), - new Date('2019-03-16').getTime() - ] - } - ] - }, - { - name: 'Dan', - data: [{ - x: 'Code', - y: [ - new Date('2019-03-10').getTime(), - new Date('2019-03-17').getTime() - ] - }, - { - x: 'Validation', - y: [ - new Date('2019-03-05').getTime(), - new Date('2019-03-09').getTime() - ] - }, - ] - } - ], - chart: { - height: 350, - type: 'rangeBar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - barHeight: '80%' - } - }, - xaxis: { - type: 'datetime' - }, - stroke: { - width: 1 - }, - fill: { - type: 'solid', - opacity: 0.6 - }, - legend: { - position: 'top', - horizontalAlign: 'left' - }, - colors: chartTimelineAdvancedColors -}; - -var chart = new ApexCharts(document.querySelector("#advanced_timeline"), options); -chart.render(); -} - -// Multiple series Group rows -var chartMultiSeriesGroupColors = getChartColorsArray("multi_series_group"); - if (chartMultiSeriesGroupColors) { - var options = { - series: [ - // George Washington - { - name: 'George Washington', - data: [ - { - x: 'President', - y: [ - new Date(1789, 3, 30).getTime(), - new Date(1797, 2, 4).getTime() - ] - }, - ] - }, - // John Adams - { - name: 'John Adams', - data: [ - { - x: 'President', - y: [ - new Date(1797, 2, 4).getTime(), - new Date(1801, 2, 4).getTime() - ] - }, - { - x: 'Vice President', - y: [ - new Date(1789, 3, 21).getTime(), - new Date(1797, 2, 4).getTime() - ] - } - ] - }, - // Thomas Jefferson - { - name: 'Thomas Jefferson', - data: [ - { - x: 'President', - y: [ - new Date(1801, 2, 4).getTime(), - new Date(1809, 2, 4).getTime() - ] - }, - { - x: 'Vice President', - y: [ - new Date(1797, 2, 4).getTime(), - new Date(1801, 2, 4).getTime() - ] - }, - { - x: 'Secretary of State', - y: [ - new Date(1790, 2, 22).getTime(), - new Date(1793, 11, 31).getTime() - ] - } - ] - }, - // Aaron Burr - { - name: 'Aaron Burr', - data: [ - { - x: 'Vice President', - y: [ - new Date(1801, 2, 4).getTime(), - new Date(1805, 2, 4).getTime() - ] - } - ] - }, - // George Clinton - { - name: 'George Clinton', - data: [ - { - x: 'Vice President', - y: [ - new Date(1805, 2, 4).getTime(), - new Date(1812, 3, 20).getTime() - ] - } - ] - }, - // John Jay - { - name: 'John Jay', - data: [ - { - x: 'Secretary of State', - y: [ - new Date(1789, 8, 25).getTime(), - new Date(1790, 2, 22).getTime() - ] - } - ] - }, - // Edmund Randolph - { - name: 'Edmund Randolph', - data: [ - { - x: 'Secretary of State', - y: [ - new Date(1794, 0, 2).getTime(), - new Date(1795, 7, 20).getTime() - ] - } - ] - }, - // Timothy Pickering - { - name: 'Timothy Pickering', - data: [ - { - x: 'Secretary of State', - y: [ - new Date(1795, 7, 20).getTime(), - new Date(1800, 4, 12).getTime() - ] - } - ] - }, - // Charles Lee - { - name: 'Charles Lee', - data: [ - { - x: 'Secretary of State', - y: [ - new Date(1800, 4, 13).getTime(), - new Date(1800, 5, 5).getTime() - ] - } - ] - }, - // John Marshall - { - name: 'John Marshall', - data: [ - { - x: 'Secretary of State', - y: [ - new Date(1800, 5, 13).getTime(), - new Date(1801, 2, 4).getTime() - ] - } - ] - } - ], - chart: { - height: 350, - type: 'rangeBar', - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: true, - barHeight: '35%', - rangeBarGroupRows: true - } - }, - colors: chartMultiSeriesGroupColors, - fill: { - type: 'solid' - }, - xaxis: { - type: 'datetime' - }, - legend: { - position: 'right' - }, - tooltip: { - custom: function (opts) { - const fromYear = new Date(opts.y1).getFullYear() - const toYear = new Date(opts.y2).getFullYear() - const values = opts.ctx.rangeBar.getTooltipValues(opts) - - return ( - '
' + - '
' + - (values.seriesName ? values.seriesName : '') + - '
' + - '
' + - values.ylabel + - ' ' + - fromYear + - ' - ' + - toYear + - '
' + - '
' - ) - } - } - }; - - var chart = new ApexCharts(document.querySelector("#multi_series_group"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apexcharts-treemap.init.js b/src/main/resources/static/assets/js/pages/apexcharts-treemap.init.js deleted file mode 100644 index 42c5c04..0000000 --- a/src/main/resources/static/assets/js/pages/apexcharts-treemap.init.js +++ /dev/null @@ -1,389 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Treemaps Chart init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Basic Treemaps -var chartTreemapBasicColors = getChartColorsArray("basic_treemap"); -if(chartTreemapBasicColors){ -var options = { - series: [{ - data: [{ - x: 'New Delhi', - y: 218 - }, - { - x: 'Kolkata', - y: 149 - }, - { - x: 'Mumbai', - y: 184 - }, - { - x: 'Ahmedabad', - y: 55 - }, - { - x: 'Bangaluru', - y: 84 - }, - { - x: 'Pune', - y: 31 - }, - { - x: 'Chennai', - y: 70 - }, - { - x: 'Jaipur', - y: 30 - }, - { - x: 'Surat', - y: 44 - }, - { - x: 'Hyderabad', - y: 68 - }, - { - x: 'Lucknow', - y: 28 - }, - { - x: 'Indore', - y: 19 - }, - { - x: 'Kanpur', - y: 29 - } - ] - }], - legend: { - show: false - }, - chart: { - height: 350, - type: 'treemap', - toolbar: { - show: false - } - }, - colors: chartTreemapBasicColors, - title: { - text: 'Basic Treemap', - style: { - fontWeight: 500, - } - }, -}; - -var chart = new ApexCharts(document.querySelector("#basic_treemap"), options); -chart.render(); -} - -// Multi - Dimensional Treemap -var chartTreemapMultiColors = getChartColorsArray("multi_treemap"); -if(chartTreemapMultiColors){ -var options = { - series: [{ - name: 'Desktops', - data: [{ - x: 'ABC', - y: 10 - }, - { - x: 'DEF', - y: 60 - }, - { - x: 'XYZ', - y: 41 - } - ] - }, - { - name: 'Mobile', - data: [{ - x: 'ABCD', - y: 10 - }, - { - x: 'DEFG', - y: 20 - }, - { - x: 'WXYZ', - y: 51 - }, - { - x: 'PQR', - y: 30 - }, - { - x: 'MNO', - y: 20 - }, - { - x: 'CDE', - y: 30 - } - ] - } - ], - legend: { - show: false - }, - chart: { - height: 350, - type: 'treemap', - toolbar: { - show: false - } - }, - title: { - text: 'Multi-dimensional Treemap', - align: 'center', - style: { - fontWeight: 500, - } - }, - colors: chartTreemapMultiColors -}; - -var chart = new ApexCharts(document.querySelector("#multi_treemap"), options); -chart.render(); -} - -// Distributed Treemap - -var chartTreemapDistributedColors = getChartColorsArray("distributed_treemap"); -if(chartTreemapDistributedColors){ -var options = { - series: [{ - data: [{ - x: 'New Delhi', - y: 218 - }, - { - x: 'Kolkata', - y: 149 - }, - { - x: 'Mumbai', - y: 184 - }, - { - x: 'Ahmedabad', - y: 55 - }, - { - x: 'Bangaluru', - y: 84 - }, - { - x: 'Pune', - y: 31 - }, - { - x: 'Chennai', - y: 70 - }, - { - x: 'Jaipur', - y: 30 - }, - { - x: 'Surat', - y: 44 - }, - { - x: 'Hyderabad', - y: 68 - }, - { - x: 'Lucknow', - y: 28 - }, - { - x: 'Indore', - y: 19 - }, - { - x: 'Kanpur', - y: 29 - } - ] - }], - legend: { - show: false - }, - chart: { - height: 350, - type: 'treemap', - toolbar: { - show: false - } - }, - title: { - text: 'Distibuted Treemap (different color for each cell)', - align: 'center', - style: { - fontWeight: 500, - } - }, - colors: chartTreemapDistributedColors, - plotOptions: { - treemap: { - distributed: true, - enableShades: false - } - } -}; - -var chart = new ApexCharts(document.querySelector("#distributed_treemap"), options); -chart.render(); -} - -// Color Range Treemaps -var chartTreemapRangeColors = getChartColorsArray("color_range_treemap"); -if(chartTreemapRangeColors){ -var options = { - series: [{ - data: [{ - x: 'INTC', - y: 1.2 - }, - { - x: 'GS', - y: 0.4 - }, - { - x: 'CVX', - y: -1.4 - }, - { - x: 'GE', - y: 2.7 - }, - { - x: 'CAT', - y: -0.3 - }, - { - x: 'RTX', - y: 5.1 - }, - { - x: 'CSCO', - y: -2.3 - }, - { - x: 'JNJ', - y: 2.1 - }, - { - x: 'PG', - y: 0.3 - }, - { - x: 'TRV', - y: 0.12 - }, - { - x: 'MMM', - y: -2.31 - }, - { - x: 'NKE', - y: 3.98 - }, - { - x: 'IYT', - y: 1.67 - } - ] - }], - legend: { - show: false - }, - chart: { - height: 350, - type: 'treemap', - toolbar: { - show: false - } - }, - title: { - text: 'Treemap with Color scale', - style: { - fontWeight: 500, - } - }, - dataLabels: { - enabled: true, - style: { - fontSize: '12px', - }, - formatter: function (text, op) { - return [text, op.value] - }, - offsetY: -4 - }, - plotOptions: { - treemap: { - enableShades: true, - shadeIntensity: 0.5, - reverseNegativeShade: true, - colorScale: { - ranges: [{ - from: -6, - to: 0, - color: chartTreemapRangeColors[0] - }, - { - from: 0.001, - to: 6, - color: chartTreemapRangeColors[1] - } - ] - } - } - } -}; - -var chart = new ApexCharts(document.querySelector("#color_range_treemap"), options); -chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/api-key.init.js b/src/main/resources/static/assets/js/pages/api-key.init.js deleted file mode 100644 index b96ef11..0000000 --- a/src/main/resources/static/assets/js/pages/api-key.init.js +++ /dev/null @@ -1,455 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: CRM-companies Js File -*/ - - -// list js -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; - for (var i = 0; i < checkboxes.length; i++) { - checkboxes[i].checked = this.checked; - if (checkboxes[i].checked) { - checkboxes[i].closest("tr").classList.add("table-active"); - } else { - checkboxes[i].closest("tr").classList.remove("table-active"); - } - } - - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; - }; -} - - -var perPage = 8; - -//Table -var options = { - valueNames: [ - "id", - "name", - "createBy", - "apikey", - "status", - "create_date", - "expiry_date", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2, - }), - ], -}; - -// Init list -var apiKeyList = new List("apiKeyList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - document.querySelector(".pagination-prev.disabled") ? - - - document.querySelector(".pagination-prev.disabled").classList.remove("disabled") : ""; - document.querySelector(".pagination-next.disabled") ? - document.querySelector(".pagination-next.disabled").classList.remove("disabled") : ""; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length == perPage) { - document.querySelector(".pagination.listjs-pagination").firstElementChild.children[0].click() - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -const xhttp = new XMLHttpRequest(); -xhttp.onload = function () { - var json_records = JSON.parse(this.responseText); - Array.from(json_records).forEach(function (element) { - apiKeyList.add({ - id: '#VZ' + element.id + "", - name: element.name, - createBy: element.createBy, - apikey: '', - status: isStatus(element.status), - create_date: element.create_date, - expiry_date: element.expiry_date - }); - apiKeyList.sort('id', { order: "desc" }); - - if(element.status == "Active"){ - document.querySelector(".disable-btn").innerHTML = "Disable" - }else if (element.status == "Disable"){ - document.querySelector(".disable-btn").innerHTML = "Enable" - } - refreshCallbacks(); - }); - apiKeyList.remove("id", `#VZ001`); -} - -xhttp.open("GET", "assets/json/api-key-list.json"); -xhttp.send(); - -function isStatus(val) { - switch (val) { - case "Disable": - return ('' + val + ""); - case "Active": - return ('' + val + ""); - } -} - - - -document.getElementById("api-key-modal").addEventListener("show.bs.modal", function (e) { - if (e.relatedTarget.classList.contains("edit-item-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Rename API name"; - document.getElementById("api-key-modal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").style.display = "none"; - document.getElementById("createApi-btn").style.display = "none"; - document.getElementById("edit-btn").style.display = "block"; - } else if (e.relatedTarget.classList.contains("create-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Create API Key"; - document.getElementById("api-key-modal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("edit-btn").style.display = "none"; - document.getElementById("createApi-btn").style.display = "block"; - document.getElementById("add-btn").style.display = "none"; - } else if (e.relatedTarget.classList.contains("regenerate-api-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Regenerate API"; - document.getElementById("api-key-modal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").style.display = "none"; - document.getElementById("createApi-btn").style.display = "none"; - document.getElementById("edit-btn").style.display = "block"; - } -}); - - -var idField = document.getElementById("apikeyId"), - apiKeyNameField = document.getElementById("api-key-name"), - apiKeyField = document.getElementById("api-key"), - addBtn = document.getElementById("add-btn"), - editBtn = document.getElementById("edit-btn"), - removeBtns = document.getElementsByClassName("remove-item-btn"), - editBtns = document.getElementsByClassName("edit-item-btn"); -refreshCallbacks(); -ischeckboxcheck(); -document.getElementById("api-key-modal").addEventListener("hidden.bs.modal", function () { - clearFields(); -}); - -document.querySelector("#apiKeyList").addEventListener("click", function () { - ischeckboxcheck(); -}); - - -// generateApiID -function generateApiID() { - var d = new Date().getTime(); - - if (window.performance && typeof window.performance.now === "function") { - d += performance.now(); - } - - var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = (d + Math.random() * 16) % 16 | 0; - d = Math.floor(d / 16); - return (c == 'x' ? r : r & 0x3 | 0x8).toString(16); - }); - - return uuid; -} - -document.querySelectorAll(".create-btn").forEach(function (item) { - item.addEventListener("click", function () { - document.getElementById("api-key").value = generateApiID(); - }) -}); - -var now = new Date(); -var current = now.toUTCString().slice(5, 16); - -now.setMonth(now.getMonth() + 6); -var nextDate = now.toUTCString().slice(5, 16); - -var count = 13; - -document.getElementById("createApi-btn").addEventListener("click", function (e) { - var text; - if (apiKeyNameField.value.length == 0) { - var errorMsg = document.getElementById("api-key-error-msg"); - errorMsg.classList.remove("d-none"); - - setTimeout(() => document.getElementById("api-key-error-msg").classList.add("d-none"), 2000); - text = "Please enter api key name"; - errorMsg.innerHTML = text; - return false; - } - - if (apiKeyNameField.value.length > 0) { - document.getElementById("apikey-element").style.display = "block"; - e.target.style.display = "none"; - document.getElementById("add-btn").style.display = "block"; - } -}); - -addBtn.addEventListener("click", function (e) { - var errorMsg = document.getElementById("api-key-error-msg"); - errorMsg.classList.remove("d-none"); - - setTimeout(() => document.getElementById("api-key-error-msg").classList.add("d-none"), 2000); - - var text; - if (apiKeyNameField.value.length == 0) { - text = "Please enter api key name"; - errorMsg.innerHTML = text; - return false; - } - - if ( - apiKeyNameField.value !== "" && - apiKeyField.value !== "" - ) { - apiKeyList.add({ - id: '#VZ' + count + "", - name: apiKeyNameField.value, - createBy: document.querySelector("#page-header-user-dropdown .user-name-text").innerHTML, - apikey: '', - status: isStatus("Active"), - create_date: current, - expiry_date: nextDate - }); - - apiKeyList.sort('id', { order: "desc" }); - document.getElementById("close-modal").click(); - clearFields(); - refreshCallbacks(); - count++; - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Application inserted successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } -}); - -editBtn.addEventListener("click", function (e) { - document.getElementById("exampleModalLabel").innerHTML = "Rename API name"; - var editValues = apiKeyList.get({ - id: idField.value, - }); - - Array.from(editValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - x.values({ - id: '#VZ' + idField.value + "", - name: apiKeyNameField.value, - createBy: x._values.createBy, - apikey: '', - status: x._values.status, - create_date: x._values.create_date, - expiry_date: x._values.expiry_date - }); - } - - document.getElementById("close-modal").click(); - }); - - Swal.fire({ - position: 'center', - icon: 'success', - title: 'API name updated Successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); -}); - -// ischeckboxcheck -function ischeckboxcheck() { - Array.from(document.getElementsByName("chk_child")).forEach(function (x) { - x.addEventListener("change", function (e) { - if (x.checked == true) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - - var checkedCount = document.querySelectorAll('[name="chk_child"]:checked').length; - if (e.target.closest("tr").classList.contains("table-active")) { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block' : document.getElementById("remove-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block' : document.getElementById("remove-actions").style.display = 'none'; - } - }); - }); -} - -// refreshCallbacks -function refreshCallbacks() { - // editBtns - Array.from(editBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = apiKeyList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - document.getElementById("apikey-element").style.display = "block"; - idField.value = selectedid; - apiKeyNameField.value = x._values.name; - apiKeyField.value = new DOMParser().parseFromString(x._values.apikey, "text/html").body.querySelector(".apikey-value").value; - } - }); - }); - }); - - // regenerate api - Array.from(document.querySelectorAll(".regenerate-api-btn")).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = apiKeyList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - document.getElementById("apikey-element").style.display = "block"; - idField.value = selectedid; - apiKeyNameField.value = x._values.name; - apiKeyField.value = generateApiID(); - } - }); - }); - }); - - // removeBtns - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = apiKeyList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - apiKeyList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecord-close").click(); - }); - } - }); - }); - }); -} - -// clearFields -function clearFields() { - apiKeyNameField.value = ""; - apiKeyField.value = ""; - document.getElementById("apikey-element").style.display = "none"; - document.getElementById("add-btn").style.display = "none"; -} - -document.querySelector(".pagination-next").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click() : "" : ""; -}); -document.querySelector(".pagination-prev").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click() : "" : ""; -}); - - - -// Delete Multiple Records -function deleteMultiple() { - ids_array = []; - var items = document.querySelectorAll('.form-check [value=option1]'); - for (i = 0; i < items.length; i++) { - if (items[i].checked == true) { - var trNode = items[i].parentNode.parentNode.parentNode; - var id = trNode.querySelector("td a").innerHTML; - ids_array.push(id); - } - }; - if (typeof ids_array !== 'undefined' && ids_array.length > 0) { - Swal.fire({ - title: "Are you sure?", - text: "You won't be able to revert this!", - icon: "warning", - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - confirmButtonText: "Yes, delete it!", - buttonsStyling: false, - showCloseButton: true - }).then(function (result) { - if (result.value) { - for (i = 0; i < ids_array.length; i++) { - apiKeyList.remove("id", `` + ids_array[i] + ``); - } - document.getElementById("remove-actions").style.display = 'none'; - document.getElementById("checkAll").checked = false; - Swal.fire({ - title: 'Deleted!', - text: 'Your data has been deleted.', - icon: 'success', - confirmButtonClass: 'btn btn-info w-xs mt-2', - buttonsStyling: false - }); - } - }); - } else { - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -}; \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apps-nft-auction.init.js b/src/main/resources/static/assets/js/pages/apps-nft-auction.init.js deleted file mode 100644 index 3b8ff04..0000000 --- a/src/main/resources/static/assets/js/pages/apps-nft-auction.init.js +++ /dev/null @@ -1,133 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: apps-nft-auction init js -*/ - -try { - var setEndDate1 = "March 19, 2024 6:0:0"; - var setEndDate2 = "April 16, 2024 5:3:1"; - var setEndDate3 = "Dec 01, 2024 1:0:1"; - var setEndDate4 = "Nov 26, 2024 1:2:1"; - var setEndDate5 = "May 27, 2024 1:6:6"; - var setEndDate6 = "May 20, 2024 2:5:5"; - var setEndDate7 = "June 10, 2024 5:1:4"; - var setEndDate8 = "June 25, 2024 1:6:3"; - var setEndDate9 = "July 08, 2024 1:5:2"; - - function startCountDownDate(dateVal) { - var countDownDate = new Date(dateVal).getTime(); - return countDownDate; - } - - function countDownTimer(start, targetDOM) { - // Get todays date and time - var now = new Date().getTime(); - - // Find the distance between now and the count down date - var distance = start - now; - - // Time calculations for days, hours, minutes and seconds - var days = Math.floor(distance / (1000 * 60 * 60 * 24)); - var hours = Math.floor( - (distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60) - ); - var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); - var seconds = Math.floor((distance % (1000 * 60)) / 1000); - - // add 0 at the beginning if days, hours, minutes, seconds values are less than 10 - days = days < 10 ? "0" + days : days; - hours = hours < 10 ? "0" + hours : hours; - minutes = minutes < 10 ? "0" + minutes : minutes; - seconds = seconds < 10 ? "0" + seconds : seconds; - - // Output the result in an element with auction-item-x" - document.querySelector("#" + targetDOM).textContent = - days + " : " + hours + " : " + minutes + " : " + seconds; - - // If the count down is over, write some text - if (distance < 0) { - // clearInterval(); - document.querySelector("#" + targetDOM).textContent = "00 : 00 : 00 : 00"; - } - } - - var cdd1 = startCountDownDate(setEndDate1); - var cdd2 = startCountDownDate(setEndDate2); - var cdd3 = startCountDownDate(setEndDate3); - var cdd4 = startCountDownDate(setEndDate4); - var cdd5 = startCountDownDate(setEndDate5); - var cdd6 = startCountDownDate(setEndDate6); - var cdd7 = startCountDownDate(setEndDate7); - var cdd8 = startCountDownDate(setEndDate8); - var cdd9 = startCountDownDate(setEndDate9); - - if (document.getElementById("auction-time-1")) - setInterval(function () { - countDownTimer(cdd1, "auction-time-1"); - }, 1000); - if (document.getElementById("auction-time-2")) - setInterval(function () { - countDownTimer(cdd2, "auction-time-2"); - }, 1000); - if (document.getElementById("auction-time-3")) - setInterval(function () { - countDownTimer(cdd3, "auction-time-3"); - }, 1000); - if (document.getElementById("auction-time-4")) - setInterval(function () { - countDownTimer(cdd4, "auction-time-4"); - }, 1000); - if (document.getElementById("auction-time-5")) - setInterval(function () { - countDownTimer(cdd5, "auction-time-5"); - }, 1000); - if (document.getElementById("auction-time-6")) - setInterval(function () { - countDownTimer(cdd6, "auction-time-6"); - }, 1000); - if (document.getElementById("auction-time-7")) - setInterval(function () { - countDownTimer(cdd7, "auction-time-7"); - }, 1000); - if (document.getElementById("auction-time-8")) - setInterval(function () { - countDownTimer(cdd8, "auction-time-8"); - }, 1000); - if (document.getElementById("auction-time-9")) - setInterval(function () { - countDownTimer(cdd9, "auction-time-9"); - }, 1000); -} catch (error) { } - - -// filter btn -var filterBtns = document.querySelectorAll(".filter-btns .nav-link"); -var productItems = document.querySelectorAll(".product-item"); - -Array.from(filterBtns).forEach(function (button) { - button.addEventListener("click", function (e) { - e.preventDefault(); - - for (var i = 0; i < filterBtns.length; i++) { - filterBtns[i].classList.remove("active"); - } - this.classList.add("active"); - - var filter = e.target.dataset.filter; - - Array.from(productItems).forEach(function (item) { - if (filter === "all") { - item.style.display = "block"; - } else { - if (item.classList.contains(filter)) { - item.style.display = "block"; - } else { - item.style.display = "none"; - } - } - }); - }); -}); diff --git a/src/main/resources/static/assets/js/pages/apps-nft-create.init.js b/src/main/resources/static/assets/js/pages/apps-nft-create.init.js deleted file mode 100644 index b05ff81..0000000 --- a/src/main/resources/static/assets/js/pages/apps-nft-create.init.js +++ /dev/null @@ -1,44 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: apps-nft-create init js -*/ - -// FilePond -FilePond.registerPlugin( - // encodes the file as base64 data - FilePondPluginFileEncode, - // validates the size of the file - FilePondPluginFileValidateSize, - // corrects mobile image orientation - FilePondPluginImageExifOrientation, - // previews dropped images - FilePondPluginImagePreview -); - -var inputMultipleElements = document.querySelectorAll('input.filepond-input-multiple'); -if(inputMultipleElements){ - -// loop over input elements -Array.from(inputMultipleElements).forEach(function (inputElement) { - // create a FilePond instance at the input element location - FilePond.create(inputElement); -}) - -FilePond.create( - document.querySelector('.filepond-input-circle'), { - labelIdle: 'Drag & Drop your picture or Browse', - imagePreviewHeight: 170, - imageCropAspectRatio: '1:1', - imageResizeTargetWidth: 200, - imageResizeTargetHeight: 200, - stylePanelLayout: 'compact circle', - styleLoadIndicatorPosition: 'center bottom', - styleProgressIndicatorPosition: 'right bottom', - styleButtonRemoveItemPosition: 'left bottom', - styleButtonProcessItemPosition: 'right bottom', - } -); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apps-nft-explore.init.js b/src/main/resources/static/assets/js/pages/apps-nft-explore.init.js deleted file mode 100644 index e88e456..0000000 --- a/src/main/resources/static/assets/js/pages/apps-nft-explore.init.js +++ /dev/null @@ -1,360 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: apps-nft-explore init js -*/ - - -var url="assets/json/"; -var allproductlist = ''; - -//mail list by json -var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); -}; - -// get json -getJSON("nft-explore-product-list.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - allproductlist = data; - loadProductData(allproductlist); - } -}); - - -// load mail data -function loadProductData(datas) { - document.querySelector("#explorecard-list").innerHTML = ''; - - Array.from(datas).forEach(function (prodctData, index) { - var likeBtn = prodctData.like ? "active" : ""; - document.querySelector("#explorecard-list").innerHTML += - '
\ -
\ -
\ - \ -
'+ prodctData.salesType + '
\ - \ -
\ -
\ - Place Bid\ -
\ -
\ -
\ - \ -
\ -
\ -

'+ prodctData.totalLikes + '

\ -
'+ prodctData.title + '
\ -

'+ prodctData.category + '

\ -
\ - \ -
\ -
'; - loadMoreBtn(); - }); -} - -// Search product list -var searchProductList = document.getElementById("searchProductList"); -searchProductList.addEventListener("keyup", function () { - var inputVal = searchProductList.value.toLowerCase(); - function filterItems(arr, query) { - return arr.filter(function (el) { - return el.title.toLowerCase().indexOf(query.toLowerCase()) !== -1 - }) - } - - var filterData = filterItems(allproductlist, inputVal); - if (filterData.length == 0) { - document.getElementById("noresult").style.display = "block"; - document.getElementById("loadmore").style.display = "none"; - } else { - document.getElementById("noresult").style.display = "none"; - document.getElementById("loadmore").style.display = "block"; - } - loadProductData(filterData); -}); - -// choices category input -var productCategoryInput = new Choices(document.getElementById('select-category'), { - searchEnabled: false, -}); - -productCategoryInput.passedElement.element.addEventListener('change', function (event) { - var productCategoryValue = event.detail.value - if (event.detail.value) { - var filterData = allproductlist.filter(productlist => productlist.category === productCategoryValue); - if (filterData.length == 0) { - document.getElementById("noresult").style.display = "block"; - document.getElementById("loadmore").style.display = "none"; - } else { - document.getElementById("noresult").style.display = "none"; - document.getElementById("loadmore").style.display = "block"; - } - } else { - var filterData = allproductlist; - } - loadProductData(filterData); -}, false); - - -// choices file-type -var productFileTypeInput = new Choices(document.getElementById('file-type'), { - searchEnabled: false, -}); - -productFileTypeInput.passedElement.element.addEventListener('change', function (event) { - var productFileTypeValue = event.detail.value - if (event.detail.value) { - var filterData = allproductlist.filter(productlist => productlist.productImg.split('.').pop() == productFileTypeValue); - if (filterData.length == 0) { - document.getElementById("noresult").style.display = "block"; - document.getElementById("loadmore").style.display = "none"; - } else { - document.getElementById("noresult").style.display = "none"; - document.getElementById("loadmore").style.display = "block"; - } - } else { - var filterData = allproductlist; - } - loadProductData(filterData); -}, false); - - -// choices category input -var productCategoryInput = new Choices(document.getElementById('select-category'), { - searchEnabled: false, -}); - -productCategoryInput.passedElement.element.addEventListener('change', function (event) { - var productCategoryValue = event.detail.value - if (event.detail.value) { - var filterData = allproductlist.filter(productlist => productlist.category === productCategoryValue); - if (filterData.length == 0) { - document.getElementById("noresult").style.display = "block"; - document.getElementById("loadmore").style.display = "none"; - } else { - document.getElementById("noresult").style.display = "none"; - document.getElementById("loadmore").style.display = "block"; - } - } else { - var filterData = allproductlist; - } - loadProductData(filterData); -}, false); - - -// choices sales input -var productSalesInputInput = new Choices(document.getElementById('all-sales-type'), { - searchEnabled: false, -}); - -productSalesInputInput.passedElement.element.addEventListener('change', function (event) { - var productCategoryValue = event.detail.value - if (event.detail.value) { - var filterData = allproductlist.filter(productlist => productlist.salesType === productCategoryValue); - if (filterData.length == 0) { - document.getElementById("noresult").style.display = "block"; - document.getElementById("loadmore").style.display = "none"; - } else { - document.getElementById("noresult").style.display = "none"; - document.getElementById("loadmore").style.display = "block"; - } - } else { - var filterData = allproductlist; - } - loadProductData(filterData); -}, false); - - -/********************* - range-product-price -**********************/ -var rangeProductPrice = document.getElementById('range-product-price'); - -noUiSlider.create(rangeProductPrice, { - start: [0, 1000], // Handle start position - step: 10, // Slider moves in increments of '10' - margin: 20, // Handles must be more than '20' apart - connect: true, // Display a colored bar between the handles - behaviour: 'tap-drag', // Move handle on tap, bar is draggable - tooltips: [true, true], - range: { // Slider can select '0' to '100' - 'min': 0, - 'max': 2000 - }, - format: wNumb({ decimals: 0 }) -}); - -mergeTooltips(rangeProductPrice, 5, ' - '); - -var minCostInput = document.getElementById('minCost'), - maxCostInput = document.getElementById('maxCost'); - -var filterDataAll = ''; - -// When the slider value changes, update the input and span -rangeProductPrice.noUiSlider.on('change', function (values, handle) { - var productListupdatedAll = allproductlist; - if (handle) { - maxCostInput.value = values[handle]; - - } else { - minCostInput.value = values[handle]; - } - - var maxvalue = maxCostInput.value; - var minvalue = minCostInput.value; - var filterDataAll = productListupdatedAll.filter( - product => parseFloat(product.price) >= minvalue && parseFloat(product.price) <= maxvalue - ); - loadProductData(filterDataAll); -}); - -/** - * @param slider HtmlElement with an initialized slider - * @param threshold Minimum proximity (in percentages) to merge tooltips - * @param separator String joining tooltips - */ -function mergeTooltips(slider, threshold, separator) { - - var textIsRtl = getComputedStyle(slider).direction === 'rtl'; - var isRtl = slider.noUiSlider.options.direction === 'rtl'; - var isVertical = slider.noUiSlider.options.orientation === 'vertical'; - var tooltips = slider.noUiSlider.getTooltips(); - var origins = slider.noUiSlider.getOrigins(); - - // Move tooltips into the origin element. The default stylesheet handles this. - Array.from(tooltips).forEach(function (tooltip, index) { - if (tooltip) { - origins[index].appendChild(tooltip); - } - }); - if (slider) - slider.noUiSlider.on('update', function (values, handle, unencoded, tap, positions) { - - var pools = [ - [] - ]; - var poolPositions = [ - [] - ]; - var poolValues = [ - [] - ]; - var atPool = 0; - - // Assign the first tooltip to the first pool, if the tooltip is configured - if (tooltips[0]) { - pools[0][0] = 0; - poolPositions[0][0] = positions[0]; - poolValues[0][0] = values[0]; - } - - for (var i = 1; i < positions.length; i++) { - if (!tooltips[i] || (positions[i] - positions[i - 1]) > threshold) { - atPool++; - pools[atPool] = []; - poolValues[atPool] = []; - poolPositions[atPool] = []; - } - - if (tooltips[i]) { - pools[atPool].push(i); - poolValues[atPool].push(values[i]); - poolPositions[atPool].push(positions[i]); - } - } - - Array.from(pools).forEach(function (pool, poolIndex) { - var handlesInPool = pool.length; - - for (var j = 0; j < handlesInPool; j++) { - var handleNumber = pool[j]; - - if (j === handlesInPool - 1) { - var offset = 0; - - Array.from(poolPositions[poolIndex]).forEach(function (value) { - offset += 1000 - value; - }); - - var direction = isVertical ? 'bottom' : 'right'; - var last = isRtl ? 0 : handlesInPool - 1; - var lastOffset = 1000 - poolPositions[poolIndex][last]; - offset = (textIsRtl && !isVertical ? 100 : 0) + (offset / handlesInPool) - lastOffset; - - // Center this tooltip over the affected handles - tooltips[handleNumber].innerHTML = poolValues[poolIndex].join(separator); - tooltips[handleNumber].style.display = 'block'; - tooltips[handleNumber].style[direction] = offset + '%'; - } else { - // Hide this tooltip - tooltips[handleNumber].style.display = 'none'; - } - } - }); - }); -} - - -// loadmore Js -function _toConsumableArray(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - return arr2; - } else { - return Array.from(arr); - } -} - -function loadMoreBtn() { - var loadmore = document.querySelector("#loadmore"); - if (loadmore) { - var currentItems = 10; - loadmore.addEventListener("click", function (e) { - - var elementList = [].concat( - _toConsumableArray(document.querySelectorAll("#explorecard-list .list-element")) - ); - if (elementList) { - for (var i = currentItems; i < currentItems + 5; i++) { - if (elementList[i]) { - elementList[i].style.display = "block"; - } - } - currentItems += 5; - - // Load more button will be hidden after list fully loaded - if (currentItems >= elementList.length) { - event.target.style.display = "none"; - } - } - }); - } -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/apps-nft-item-details.init.js b/src/main/resources/static/assets/js/pages/apps-nft-item-details.init.js deleted file mode 100644 index d8922aa..0000000 --- a/src/main/resources/static/assets/js/pages/apps-nft-item-details.init.js +++ /dev/null @@ -1,133 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: apps-nft-item-details init js -*/ - -try { - var setEndDate1 = "March 19, 2024 6:0:0"; - var setEndDate2 = "April 16, 2023 5:3:1"; - var setEndDate3 = "Dec 01, 2023 1:0:1"; - var setEndDate4 = "Nov 26, 2024 1:2:1"; - var setEndDate5 = "May 27, 2023 1:6:6"; - var setEndDate6 = "May 20, 2023 2:5:5"; - var setEndDate7 = "June 10, 2023 5:1:4"; - var setEndDate8 = "June 25, 2023 1:6:3"; - var setEndDate9 = "July 08, 2023 1:5:2"; - - function startCountDownDate(dateVal) { - var countDownDate = new Date(dateVal).getTime(); - return countDownDate; - } - - function countDownTimer(start, targetDOM) { - // Get todays date and time - var now = new Date().getTime(); - - // Find the distance between now and the count down date - var distance = start - now; - - // Time calculations for days, hours, minutes and seconds - var days = Math.floor(distance / (1000 * 60 * 60 * 24)); - var hours = Math.floor( - (distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60) - ); - var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); - var seconds = Math.floor((distance % (1000 * 60)) / 1000); - - // add 0 at the beginning if days, hours, minutes, seconds values are less than 10 - days = days < 10 ? "0" + days : days; - hours = hours < 10 ? "0" + hours : hours; - minutes = minutes < 10 ? "0" + minutes : minutes; - seconds = seconds < 10 ? "0" + seconds : seconds; - - // Output the result in an element with auction-item-x" - document.querySelector("#" + targetDOM).textContent = - days + " : " + hours + " : " + minutes + " : " + seconds; - - // If the count down is over, write some text - if (distance < 0) { - // clearInterval(); - document.querySelector("#" + targetDOM).textContent = "00 : 00 : 00 : 00"; - } - } - - var cdd1 = startCountDownDate(setEndDate1); - var cdd2 = startCountDownDate(setEndDate2); - var cdd3 = startCountDownDate(setEndDate3); - var cdd4 = startCountDownDate(setEndDate4); - var cdd5 = startCountDownDate(setEndDate5); - var cdd6 = startCountDownDate(setEndDate6); - var cdd7 = startCountDownDate(setEndDate7); - var cdd8 = startCountDownDate(setEndDate8); - var cdd9 = startCountDownDate(setEndDate9); - - if (document.getElementById("auction-time-1")) - setInterval(function () { - countDownTimer(cdd1, "auction-time-1"); - }, 1000); - if (document.getElementById("auction-time-2")) - setInterval(function () { - countDownTimer(cdd2, "auction-time-2"); - }, 1000); - if (document.getElementById("auction-time-3")) - setInterval(function () { - countDownTimer(cdd3, "auction-time-3"); - }, 1000); - if (document.getElementById("auction-time-4")) - setInterval(function () { - countDownTimer(cdd4, "auction-time-4"); - }, 1000); - if (document.getElementById("auction-time-5")) - setInterval(function () { - countDownTimer(cdd5, "auction-time-5"); - }, 1000); - if (document.getElementById("auction-time-6")) - setInterval(function () { - countDownTimer(cdd6, "auction-time-6"); - }, 1000); - if (document.getElementById("auction-time-7")) - setInterval(function () { - countDownTimer(cdd7, "auction-time-7"); - }, 1000); - if (document.getElementById("auction-time-8")) - setInterval(function () { - countDownTimer(cdd8, "auction-time-8"); - }, 1000); - if (document.getElementById("auction-time-9")) - setInterval(function () { - countDownTimer(cdd9, "auction-time-9"); - }, 1000); -} catch (error) { } - - -// filter btn -var filterBtns = document.querySelectorAll(".filter-btns .nav-link"); -var productItems = document.querySelectorAll(".product-item"); - -Array.from(filterBtns).forEach(function (button) { - button.addEventListener("click", function (e) { - e.preventDefault(); - - for (var i = 0; i < filterBtns.length; i++) { - filterBtns[i].classList.remove("active"); - } - this.classList.add("active"); - - var filter = e.target.dataset.filter; - - Array.from(productItems).forEach(function (item) { - if (filter === "all") { - item.style.display = "block"; - } else { - if (item.classList.contains(filter)) { - item.style.display = "block"; - } else { - item.style.display = "none"; - } - } - }); - }); -}); diff --git a/src/main/resources/static/assets/js/pages/apps-nft-ranking.init.js b/src/main/resources/static/assets/js/pages/apps-nft-ranking.init.js deleted file mode 100644 index 267b168..0000000 --- a/src/main/resources/static/assets/js/pages/apps-nft-ranking.init.js +++ /dev/null @@ -1,77 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: apps-nft-ranking init js -*/ - -// list js -var perPage = 10; - -//Table -var options = { - valueNames: [ - "ranking", - "collection", - "volume_price", - "24h", - "7d", - "item", - "floor-price", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; - -// Init list -var contactList = new List("contactList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -isCount = new DOMParser().parseFromString( - contactList.items.slice(-1)[0]._values.id, - "text/html" -); - -if(document.querySelector(".pagination-next")) - document.querySelector(".pagination-next").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; - }); - -if(document.querySelector(".pagination-prev")) - document.querySelector(".pagination-prev").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; - }); diff --git a/src/main/resources/static/assets/js/pages/calendar.init.js b/src/main/resources/static/assets/js/pages/calendar.init.js deleted file mode 100644 index 0567727..0000000 --- a/src/main/resources/static/assets/js/pages/calendar.init.js +++ /dev/null @@ -1,753 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Calendar init js -*/ - - -var start_date = document.getElementById("event-start-date"); -var timepicker1 = document.getElementById("timepicker1"); -var timepicker2 = document.getElementById("timepicker2"); -var date_range = null; -var T_check = null; -document.addEventListener("DOMContentLoaded", function () { - flatPickrInit(); - var addEvent = new bootstrap.Modal(document.getElementById('event-modal'), { - keyboard: false - }); - document.getElementById('event-modal'); - var modalTitle = document.getElementById('modal-title'); - var formEvent = document.getElementById('form-event'); - var selectedEvent = null; - var forms = document.getElementsByClassName('needs-validation'); - /* initialize the calendar */ - - var date = new Date(); - var d = date.getDate(); - var m = date.getMonth(); - var y = date.getFullYear(); - var Draggable = FullCalendar.Draggable; - var externalEventContainerEl = document.getElementById('external-events'); - var defaultEvents = [{ - id: 1, - title: "World Braille Day", - start: "2022-01-04", - className: "bg-soft-info", - allDay: true - - }, - { - id: 2, - title: "World Leprosy Day", - start: "2022-01-30", - className: "bg-soft-info", - allDay: true - }, - - { - id: 3, - title: "International Mother Language Day", - start: "2022-02-21", - className: "bg-soft-info", - allDay: true - }, - - { - id: 4, - title: "International Women's Day", - start: "2022-03-08", - className: "bg-soft-info", - allDay: true - }, - - { - id: 5, - title: "World Thinking Day", - start: "2022-02-22", - className: "bg-soft-info", - allDay: true - }, - - { - id: 6, - title: "International Mother Language Day", - start: "2022-03-21", - className: "bg-soft-info", - allDay: true - }, - - { - id: 7, - title: "World Water Day", - start: "2022-03-22", - className: "bg-soft-info", - allDay: true - }, - - { - id: 8, - title: "World Health Day", - start: "2022-04-07", - className: "bg-soft-info", - allDay: true - }, - - - { - id: 9, - title: "International Special Librarians Day", - start: "2022-04-16", - className: "bg-soft-info", - allDay: true - }, - - { - id: 10, - title: "Earth Day", - start: "2022-04-22", - className: "bg-soft-info", - allDay: true - }, - { - id: 153, - title: 'All Day Event', - start: new Date(y, m, 1), - className: 'bg-soft-primary', - location: 'San Francisco, US', - allDay: true, - extendedProps: { - department: 'All Day Event' - }, - description: 'An all-day event is an event that lasts an entire day or longer' - }, - { - id: 136, - title: 'Visit Online Course', - start: new Date(y, m, d - 5), - end: new Date(y, m, d - 2), - allDay: true, - className: 'bg-soft-warning', - extendedProps: { - department: 'Long Event' - }, - description: 'Long Term Event means an incident that last longer than 12 hours.' - }, - { - id: 999, - title: 'Client Meeting with Alexis', - start: new Date(y, m, d + 22, 20, 0), - end: new Date(y, m, d + 24, 16, 0), - allDay: true, - className: 'bg-soft-danger', - location: 'California, US', - extendedProps: { - department: 'Meeting with Alexis' - }, - description: 'A meeting is a gathering of two or more people that has been convened for the purpose of achieving a common goal through verbal interaction, such as sharing information or reaching agreement.' - }, - { - id: 991, - title: 'Repeating Event', - start: new Date(y, m, d + 4, 16, 0), - end: new Date(y, m, d + 9, 16, 0), - allDay: true, - className: 'bg-soft-primary', - location: 'Las Vegas, US', - extendedProps: { - department: 'Repeating Event' - }, - description: 'A recurring or repeating event is simply any event that you will occur more than once on your calendar. ', - }, - { - id: 112, - title: 'Meeting With Designer', - start: new Date(y, m, d, 12, 30), - allDay: true, - className: 'bg-soft-success', - location: 'Head Office, US', - extendedProps: { - department: 'Meeting' - }, - description: 'Tell how to boost website traffic' - }, - { - id: 113, - title: 'Weekly Strategy Planning', - start: new Date(y, m, d + 9), - end: new Date(y, m, d + 11), - allDay: true, - className: 'bg-soft-danger', - location: 'Head Office, US', - extendedProps: { - department: 'Lunch' - }, - description: 'Strategies for Creating Your Weekly Schedule' - }, - { - id: 875, - title: 'Birthday Party', - start: new Date(y, m, d + 1, 19, 0), - allDay: true, - className: 'bg-soft-success', - location: 'Los Angeles, US', - extendedProps: { - department: 'Birthday Party' - }, - description: 'Family slumber party – Bring out the blankets and pillows and have a family slumber party! Play silly party games, share special snacks and wind down the fun with a special movie.' - }, - { - id: 783, - title: 'Click for Google', - start: new Date(y, m, 28), - end: new Date(y, m, 29), - allDay: true, - url: 'http://google.com/', - className: 'bg-soft-dark', - }, - { - id: 456, - title: 'Velzon Project Discussion with Team', - start: new Date(y, m, d + 23, 20, 0), - end: new Date(y, m, d + 24, 16, 0), - allDay: true, - className: 'bg-soft-info', - location: 'Head Office, US', - extendedProps: { - department: 'Discussion' - }, - description: 'Tell how to boost website traffic' - }, - ]; - - // init draggable - new Draggable(externalEventContainerEl, { - itemSelector: '.external-event', - eventData: function (eventEl) { - return { - id: Math.floor(Math.random() * 11000), - title: eventEl.innerText, - allDay: true, - start: new Date(), - className: eventEl.getAttribute('data-class') - }; - } - }); - - var calendarEl = document.getElementById('calendar'); - - function addNewEvent(info) { - document.getElementById('form-event').reset(); - document.getElementById('btn-delete-event').setAttribute('hidden', true); - addEvent.show(); - formEvent.classList.remove("was-validated"); - formEvent.reset(); - selectedEvent = null; - modalTitle.innerText = 'Add Event'; - newEventData = info; - document.getElementById("edit-event-btn").setAttribute("data-id", "new-event"); - document.getElementById('edit-event-btn').click(); - document.getElementById("edit-event-btn").setAttribute("hidden", true); - } - - function getInitialView() { - if (window.innerWidth >= 768 && window.innerWidth < 1200) { - return 'timeGridWeek'; - } else if (window.innerWidth <= 768) { - return 'listMonth'; - } else { - return 'dayGridMonth'; - } - } - - var eventCategoryChoice = new Choices("#event-category", { - searchEnabled: false - }); - - var calendar = new FullCalendar.Calendar(calendarEl, { - timeZone: 'local', - editable: true, - droppable: true, - selectable: true, - navLinks: true, - initialView: getInitialView(), - themeSystem: 'bootstrap', - headerToolbar: { - left: 'prev,next today', - center: 'title', - right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth' - }, - windowResize: function (view) { - var newView = getInitialView(); - calendar.changeView(newView); - }, - eventResize: function(info) { - var indexOfSelectedEvent = defaultEvents.findIndex(function (x) { - return x.id == info.event.id - }); - if (defaultEvents[indexOfSelectedEvent]) { - defaultEvents[indexOfSelectedEvent].title = info.event.title; - defaultEvents[indexOfSelectedEvent].start = info.event.start; - defaultEvents[indexOfSelectedEvent].end = (info.event.end) ? info.event.end : null; - defaultEvents[indexOfSelectedEvent].allDay = info.event.allDay; - defaultEvents[indexOfSelectedEvent].className = info.event.classNames[0]; - defaultEvents[indexOfSelectedEvent].description = (info.event._def.extendedProps.description) ? info.event._def.extendedProps.description : ''; - defaultEvents[indexOfSelectedEvent].location = (info.event._def.extendedProps.location) ? info.event._def.extendedProps.location : ''; - } - upcomingEvent(defaultEvents); - }, - eventClick: function (info) { - document.getElementById("edit-event-btn").removeAttribute("hidden"); - document.getElementById('btn-save-event').setAttribute("hidden", true); - document.getElementById("edit-event-btn").setAttribute("data-id", "edit-event"); - document.getElementById("edit-event-btn").innerHTML = "Edit"; - eventClicked(); - flatPickrInit(); - flatpicekrValueClear(); - addEvent.show(); - formEvent.reset(); - selectedEvent = info.event; - - // First Modal - document.getElementById("modal-title").innerHTML = ""; - document.getElementById("event-location-tag").innerHTML = selectedEvent.extendedProps.location === undefined ? "No Location" : selectedEvent.extendedProps.location; - document.getElementById("event-description-tag").innerHTML = selectedEvent.extendedProps.description === undefined ? "No Description" : selectedEvent.extendedProps.description; - - // Edit Modal - document.getElementById("event-title").value = selectedEvent.title; - document.getElementById("event-location").value = selectedEvent.extendedProps.location === undefined ? "No Location" : selectedEvent.extendedProps.location; - document.getElementById("event-description").value = selectedEvent.extendedProps.description === undefined ? "No Description" : selectedEvent.extendedProps.description; - document.getElementById("eventid").value = selectedEvent.id; - - if (selectedEvent.classNames[0]) { - eventCategoryChoice.destroy(); - eventCategoryChoice = new Choices("#event-category", { - searchEnabled: false - }); - eventCategoryChoice.setChoiceByValue(selectedEvent.classNames[0]); - } - var st_date = selectedEvent.start; - var ed_date = selectedEvent.end; - - var date_r = function formatDate(date) { - var d = new Date(date), - month = '' + (d.getMonth() + 1), - day = '' + d.getDate(), - year = d.getFullYear(); - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - return [year, month, day].join('-'); - }; - var updateDay = null - if(ed_date != null){ - var endUpdateDay = new Date(ed_date); - updateDay = endUpdateDay.setDate(endUpdateDay.getDate() - 1); - } - - var r_date = ed_date == null ? (str_dt(st_date)) : (str_dt(st_date)) + ' to ' + (str_dt(updateDay)); - var er_date = ed_date == null ? (date_r(st_date)) : (date_r(st_date)) + ' to ' + (date_r(updateDay)); - - flatpickr(start_date, { - defaultDate: er_date, - altInput: true, - altFormat: "j F Y", - dateFormat: "Y-m-d", - mode: ed_date !== null ? "range" : "range", - onChange: function (selectedDates, dateStr, instance) { - var date_range = dateStr; - var dates = date_range.split("to"); - if (dates.length > 1) { - document.getElementById('event-time').setAttribute("hidden", true); - } else { - document.getElementById("timepicker1").parentNode.classList.remove("d-none"); - document.getElementById("timepicker1").classList.replace("d-none", "d-block"); - document.getElementById("timepicker2").parentNode.classList.remove("d-none"); - document.getElementById("timepicker2").classList.replace("d-none", "d-block"); - document.getElementById('event-time').removeAttribute("hidden"); - } - }, - }); - document.getElementById("event-start-date-tag").innerHTML = r_date; - - var gt_time = getTime(selectedEvent.start); - var ed_time = getTime(selectedEvent.end); - - if (gt_time == ed_time) { - document.getElementById('event-time').setAttribute("hidden", true); - flatpickr(document.getElementById("timepicker1"), { - enableTime: true, - noCalendar: true, - dateFormat: "H:i", - }); - flatpickr(document.getElementById("timepicker2"), { - enableTime: true, - noCalendar: true, - dateFormat: "H:i", - }); - } else { - document.getElementById('event-time').removeAttribute("hidden"); - flatpickr(document.getElementById("timepicker1"), { - enableTime: true, - noCalendar: true, - dateFormat: "H:i", - defaultDate: gt_time - }); - - flatpickr(document.getElementById("timepicker2"), { - enableTime: true, - noCalendar: true, - dateFormat: "H:i", - defaultDate: ed_time - }); - document.getElementById("event-timepicker1-tag").innerHTML = tConvert(gt_time); - document.getElementById("event-timepicker2-tag").innerHTML = tConvert(ed_time); - } - newEventData = null; - modalTitle.innerText = selectedEvent.title; - - // formEvent.classList.add("view-event"); - document.getElementById('btn-delete-event').removeAttribute('hidden'); - }, - dateClick: function (info) { - addNewEvent(info); - }, - events: defaultEvents, - eventReceive: function (info) { - var newid = parseInt(info.event.id); - var newEvent = { - id: newid, - title: info.event.title, - start: info.event.start, - allDay: info.event.allDay, - className: info.event.classNames[0] - }; - defaultEvents.push(newEvent); - upcomingEvent(defaultEvents); - }, - eventDrop: function (info) { - var indexOfSelectedEvent = defaultEvents.findIndex(function (x) { - return x.id == info.event.id - }); - if (defaultEvents[indexOfSelectedEvent]) { - defaultEvents[indexOfSelectedEvent].title = info.event.title; - defaultEvents[indexOfSelectedEvent].start = info.event.start; - defaultEvents[indexOfSelectedEvent].end = (info.event.end) ? info.event.end : null; - defaultEvents[indexOfSelectedEvent].allDay = info.event.allDay; - defaultEvents[indexOfSelectedEvent].className = info.event.classNames[0]; - defaultEvents[indexOfSelectedEvent].description = (info.event._def.extendedProps.description) ? info.event._def.extendedProps.description : ''; - defaultEvents[indexOfSelectedEvent].location = (info.event._def.extendedProps.location) ? info.event._def.extendedProps.location : ''; - } - upcomingEvent(defaultEvents); - } - }); - - calendar.render(); - - upcomingEvent(defaultEvents); - /*Add new event*/ - // Form to add new event - formEvent.addEventListener('submit', function (ev) { - ev.preventDefault(); - var updatedTitle = document.getElementById("event-title").value; - var updatedCategory = document.getElementById('event-category').value; - var start_date = (document.getElementById("event-start-date").value).split("to"); - var updateStartDate = new Date(start_date[0].trim()); - - var newdate = new Date(start_date[1]); - newdate.setDate(newdate.getDate() + 1); - - var updateEndDate = (start_date[1]) ? newdate : ''; - - var end_date = null; - var event_location = document.getElementById("event-location").value; - var eventDescription = document.getElementById("event-description").value; - var eventid = document.getElementById("eventid").value; - var all_day = false; - if (start_date.length > 1) { - var end_date = new Date(start_date[1]); - end_date.setDate(end_date.getDate() + 1); - start_date = new Date(start_date[0]); - all_day = true; - } else { - var e_date = start_date; - var start_time = (document.getElementById("timepicker1").value).trim(); - var end_time = (document.getElementById("timepicker2").value).trim(); - start_date = new Date(start_date + "T" + start_time); - end_date = new Date(e_date + "T" + end_time); - } - var e_id = defaultEvents.length + 1; - - // validation - if (forms[0].checkValidity() === false) { - forms[0].classList.add('was-validated'); - } else { - if (selectedEvent) { - selectedEvent.setProp("id", eventid); - selectedEvent.setProp("title", updatedTitle); - selectedEvent.setProp("classNames", [updatedCategory]); - selectedEvent.setStart(updateStartDate); - selectedEvent.setEnd(updateEndDate); - selectedEvent.setAllDay(all_day); - selectedEvent.setExtendedProp("description", eventDescription); - selectedEvent.setExtendedProp("location", event_location); - var indexOfSelectedEvent = defaultEvents.findIndex(function (x) { - return x.id == selectedEvent.id - }); - if (defaultEvents[indexOfSelectedEvent]) { - defaultEvents[indexOfSelectedEvent].title = updatedTitle; - defaultEvents[indexOfSelectedEvent].start = updateStartDate; - defaultEvents[indexOfSelectedEvent].end = updateEndDate; - defaultEvents[indexOfSelectedEvent].allDay = all_day; - defaultEvents[indexOfSelectedEvent].className = updatedCategory; - defaultEvents[indexOfSelectedEvent].description = eventDescription; - defaultEvents[indexOfSelectedEvent].location = event_location; - } - calendar.render(); - // default - } else { - var newEvent = { - id: e_id, - title: updatedTitle, - start: start_date, - end: end_date, - allDay: all_day, - className: updatedCategory, - description: eventDescription, - location: event_location - }; - calendar.addEvent(newEvent); - defaultEvents.push(newEvent); - } - addEvent.hide(); - upcomingEvent(defaultEvents); - } - }); - - document.getElementById("btn-delete-event").addEventListener("click", function (e) { - if (selectedEvent) { - for (var i = 0; i < defaultEvents.length; i++) { - if (defaultEvents[i].id == selectedEvent.id) { - defaultEvents.splice(i, 1); - i--; - } - } - upcomingEvent(defaultEvents); - selectedEvent.remove(); - selectedEvent = null; - addEvent.hide(); - } - }); - document.getElementById("btn-new-event").addEventListener("click", function (e) { - flatpicekrValueClear(); - flatPickrInit(); - addNewEvent(); - document.getElementById("edit-event-btn").setAttribute("data-id", "new-event"); - document.getElementById('edit-event-btn').click(); - document.getElementById("edit-event-btn").setAttribute("hidden", true); - }); -}); - - -function flatPickrInit() { - var config = { - enableTime: true, - noCalendar: true, - }; - var date_range = flatpickr( - start_date, { - enableTime: false, - mode: "range", - minDate: "today", - onChange: function (selectedDates, dateStr, instance) { - var date_range = dateStr; - var dates = date_range.split("to"); - if (dates.length > 1) { - document.getElementById('event-time').setAttribute("hidden", true); - } else { - document.getElementById("timepicker1").parentNode.classList.remove("d-none"); - document.getElementById("timepicker1").classList.replace("d-none", "d-block"); - document.getElementById("timepicker2").parentNode.classList.remove("d-none"); - document.getElementById("timepicker2").classList.replace("d-none", "d-block"); - document.getElementById('event-time').removeAttribute("hidden"); - } - }, - }); - flatpickr(timepicker1, config); - flatpickr(timepicker2, config); - -} - -function flatpicekrValueClear() { - start_date.flatpickr().clear(); - timepicker1.flatpickr().clear(); - timepicker2.flatpickr().clear(); -} - - -function eventClicked() { - document.getElementById('form-event').classList.add("view-event"); - document.getElementById("event-title").classList.replace("d-block", "d-none"); - document.getElementById("event-category").classList.replace("d-block", "d-none"); - document.getElementById("event-start-date").parentNode.classList.add("d-none"); - document.getElementById("event-start-date").classList.replace("d-block", "d-none"); - document.getElementById('event-time').setAttribute("hidden", true); - document.getElementById("timepicker1").parentNode.classList.add("d-none"); - document.getElementById("timepicker1").classList.replace("d-block", "d-none"); - document.getElementById("timepicker2").parentNode.classList.add("d-none"); - document.getElementById("timepicker2").classList.replace("d-block", "d-none"); - document.getElementById("event-location").classList.replace("d-block", "d-none"); - document.getElementById("event-description").classList.replace("d-block", "d-none"); - document.getElementById("event-start-date-tag").classList.replace("d-none", "d-block"); - document.getElementById("event-timepicker1-tag").classList.replace("d-none", "d-block"); - document.getElementById("event-timepicker2-tag").classList.replace("d-none", "d-block"); - document.getElementById("event-location-tag").classList.replace("d-none", "d-block"); - document.getElementById("event-description-tag").classList.replace("d-none", "d-block"); - document.getElementById('btn-save-event').setAttribute("hidden", true); -} - -function editEvent(data) { - var data_id = data.getAttribute("data-id"); - if (data_id == 'new-event') { - document.getElementById('modal-title').innerHTML = ""; - document.getElementById('modal-title').innerHTML = "Add Event"; - document.getElementById("btn-save-event").innerHTML = "Add Event"; - eventTyped(); - } else if (data_id == 'edit-event') { - data.innerHTML = "Cancel"; - data.setAttribute("data-id", 'cancel-event'); - document.getElementById("btn-save-event").innerHTML = "Update Event"; - data.removeAttribute("hidden"); - eventTyped(); - } else { - data.innerHTML = "Edit"; - data.setAttribute("data-id", 'edit-event'); - eventClicked(); - } -} - -function eventTyped() { - document.getElementById('form-event').classList.remove("view-event"); - document.getElementById("event-title").classList.replace("d-none", "d-block"); - document.getElementById("event-category").classList.replace("d-none", "d-block"); - document.getElementById("event-start-date").parentNode.classList.remove("d-none"); - document.getElementById("event-start-date").classList.replace("d-none", "d-block"); - document.getElementById("timepicker1").parentNode.classList.remove("d-none"); - document.getElementById("timepicker1").classList.replace("d-none", "d-block"); - document.getElementById("timepicker2").parentNode.classList.remove("d-none"); - document.getElementById("timepicker2").classList.replace("d-none", "d-block"); - document.getElementById("event-location").classList.replace("d-none", "d-block"); - document.getElementById("event-description").classList.replace("d-none", "d-block"); - document.getElementById("event-start-date-tag").classList.replace("d-block", "d-none"); - document.getElementById("event-timepicker1-tag").classList.replace("d-block", "d-none"); - document.getElementById("event-timepicker2-tag").classList.replace("d-block", "d-none"); - document.getElementById("event-location-tag").classList.replace("d-block", "d-none"); - document.getElementById("event-description-tag").classList.replace("d-block", "d-none"); - document.getElementById('btn-save-event').removeAttribute("hidden"); -} - -// upcoming Event -function upcomingEvent(a) { - a.sort(function (o1, o2) { - return (new Date(o1.start)) - (new Date(o2.start)); - }); - document.getElementById("upcoming-event-list").innerHTML = null; - Array.from(a).forEach(function (element) { - var title = element.title; - if (element.end) { - endUpdatedDay = new Date(element.end); - var updatedDay = endUpdatedDay.setDate(endUpdatedDay.getDate() - 1); - } - var e_dt = updatedDay ? updatedDay : undefined; - if (e_dt == "Invalid Date" || e_dt == undefined) { - e_dt = null; - } else { - const newDate = new Date(e_dt).toLocaleDateString('en', { year: 'numeric', month: 'numeric', day: 'numeric' }); - e_dt = new Date(newDate) - .toLocaleDateString("en-GB", { - day: "numeric", - month: "short", - year: "numeric", - }) - .split(" ") - .join(" "); - } - var st_date = element.start ? str_dt(element.start) : null; - var ed_date = updatedDay ? str_dt(updatedDay) : null; - if (st_date === ed_date) { - e_dt = null; - } - var startDate = element.start; - if (startDate === "Invalid Date" || startDate === undefined) { - startDate = null; - } else { - const newDate = new Date(startDate).toLocaleDateString('en', { year: 'numeric', month: 'numeric', day: 'numeric' }); - startDate = new Date(newDate) - .toLocaleDateString("en-GB", { - day: "numeric", - month: "short", - year: "numeric", - }) - .split(" ") - .join(" "); - } - - var end_dt = (e_dt) ? " to " + e_dt : ''; - var category = (element.className).split("-"); - var description = (element.description) ? element.description : ""; - var e_time_s = tConvert(getTime(element.start)); - var e_time_e = tConvert(getTime(updatedDay)); - if (e_time_s == e_time_e) { - var e_time_s = "Full day event"; - var e_time_e = null; - } - var e_time_e = (e_time_e) ? " to " + e_time_e : ""; - - u_event = "
\ -
\ -
\ -
" + startDate + end_dt + "
\ -
" + e_time_s + e_time_e + "
\ -
\ -
" + title + "
\ -

" + description + "

\ -
\ -
"; - document.getElementById("upcoming-event-list").innerHTML += u_event; - }); -}; - -function getTime(params) { - params = new Date(params); - if (params.getHours() != null) { - var hour = params.getHours(); - var minute = (params.getMinutes()) ? params.getMinutes() : 00; - return hour + ":" + minute; - } -} - -function tConvert(time) { - var t = time.split(":"); - var hours = t[0]; - var minutes = t[1]; - var newformat = hours >= 12 ? 'PM' : 'AM'; - hours = hours % 12; - hours = hours ? hours : 12; - minutes = minutes < 10 ? '0' + minutes : minutes; - return (hours + ':' + minutes + ' ' + newformat); -} - -var str_dt = function formatDate(date) { - var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; - var d = new Date(date), - month = '' + monthNames[(d.getMonth())], - day = '' + d.getDate(), - year = d.getFullYear(); - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - return [day + " " + month, year].join(','); -}; \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/card.init.js b/src/main/resources/static/assets/js/pages/card.init.js deleted file mode 100644 index 93ed5b1..0000000 --- a/src/main/resources/static/assets/js/pages/card.init.js +++ /dev/null @@ -1,70 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Card init js -*/ - -var Portlet = function() { - el = document.querySelector('.card a[data-toggle="reload"]'); - if (el) { - el.addEventListener("click", function(ev) { - ev.preventDefault(); - var $portlet = el.closest(".card"); - insertEl = - '
Loading...
'; - $portlet.children[1].insertAdjacentHTML("beforeend", insertEl); - var $pd = $portlet.getElementsByClassName("card-preloader")[0]; - setTimeout(function() { - $pd.remove(); - }, 500 + 300 * (Math.random() * 5)); - }); - } -}; - -Portlet(); - -var growingLoader = function() { - element = document.querySelector('.card a[data-toggle="growing-reload"]'); - if (element) { - element.addEventListener("click", function(ev) { - ev.preventDefault(); - var $portlet = element.closest(".card"); - insertEl = - '
Loading...
'; - $portlet.children[1].insertAdjacentHTML("beforeend", insertEl); - var $pd = $portlet.getElementsByClassName("card-preloader")[0]; - setTimeout(function() { - $pd.remove(); - }, 500 + 300 * (Math.random() * 5)); - }); - } -}; -growingLoader(); - -var customLoader = function() { - customLoader1 = document.querySelector( - '.card a[data-toggle="customer-loader"]' - ); - if (customLoader1) { - customLoader1.addEventListener("click", function(elem) { - elem.preventDefault(); - var $portlet = customLoader1.closest(".card"); - insertEl = - '
'; - $portlet.children[1].insertAdjacentHTML("beforeend", insertEl); - var $pd = $portlet.getElementsByClassName("card-preloader")[0]; - setTimeout(function() { - $pd.remove(); - }, 500 + 300 * (Math.random() * 5)); - }); - } -}; - -customLoader(); - -//card-remove Js -function delthis(id) { - document.getElementById(id).remove(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/chartjs.init.js b/src/main/resources/static/assets/js/pages/chartjs.init.js deleted file mode 100644 index 28f374b..0000000 --- a/src/main/resources/static/assets/js/pages/chartjs.init.js +++ /dev/null @@ -1,319 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Chartjs init js -*/ - - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; else return newValue;; - } else { - var val = value.split(','); - if(val.length == 2){ - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba("+rgbaColor+","+val[1]+")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - -Chart.defaults.borderColor= "rgba(133, 141, 152, 0.1)"; -Chart.defaults.color= "#858d98"; - -// line chart -var islinechart = document.getElementById('lineChart'); -lineChartColor = getChartColorsArray('lineChart'); -if(lineChartColor){ -islinechart.setAttribute("width", islinechart.parentElement.offsetWidth); - -var lineChart = new Chart(islinechart, { - type: 'line', - data: { - labels: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October"], - datasets: [ - { - label: "Sales Analytics", - fill: true, - lineTension: 0.5, - backgroundColor: lineChartColor[0], - borderColor: lineChartColor[1], - borderCapStyle: 'butt', - borderDash: [], - borderDashOffset: 0.0, - borderJoinStyle: 'miter', - pointBorderColor: lineChartColor[1], - pointBackgroundColor: "#fff", - pointBorderWidth: 1, - pointHoverRadius: 5, - pointHoverBackgroundColor: lineChartColor[1], - pointHoverBorderColor: "#fff", - pointHoverBorderWidth: 2, - pointRadius: 1, - pointHitRadius: 10, - data: [65, 59, 80, 81, 56, 55, 40, 55, 30, 80] - }, - { - label: "Monthly Earnings", - fill: true, - lineTension: 0.5, - backgroundColor: lineChartColor[2], - borderColor: lineChartColor[3], - borderCapStyle: 'butt', - borderDash: [], - borderDashOffset: 0.0, - borderJoinStyle: 'miter', - pointBorderColor: lineChartColor[3], - pointBackgroundColor: "#fff", - pointBorderWidth: 1, - pointHoverRadius: 5, - pointHoverBackgroundColor: lineChartColor[3], - pointHoverBorderColor: "#eef0f2", - pointHoverBorderWidth: 2, - pointRadius: 1, - pointHitRadius: 10, - data: [80, 23, 56, 65, 23, 35, 85, 25, 92, 36] - } - ] - }, - options: { - x: { - ticks: { - font: { - family: 'Poppins', - }, - }, - }, - y: { - ticks: { - font: { - family: 'Poppins', - }, - }, - }, - plugins: { - legend: { - labels: { - // This more specific font property overrides the global property - font: { - family: 'Poppins', - } - } - }, - }, - }, - -}); -} - -// bar chart -var isbarchart = document.getElementById('bar'); -barChartColor = getChartColorsArray('bar'); -if(barChartColor){ -isbarchart.setAttribute("width", isbarchart.parentElement.offsetWidth); -var barChart = new Chart(isbarchart, { - type: 'bar', - data: { - labels: ["January", "February", "March", "April", "May", "June", "July"], - datasets: [ - { - label: "Sales Analytics", - backgroundColor: barChartColor[0], - borderColor: barChartColor[0], - borderWidth: 1, - hoverBackgroundColor: barChartColor[1], - hoverBorderColor: barChartColor[1], - data: [65, 59, 81, 45, 56, 80, 50,20] - } - ] - }, - options: { - x: { - ticks: { - font: { - family: 'Poppins', - }, - }, - }, - y: { - ticks: { - font: { - family: 'Poppins', - }, - }, - }, - plugins: { - legend: { - labels: { - font: { - family: 'Poppins', - } - } - }, - } - } -}); -} - -// pie chart -var ispiechart = document.getElementById('pieChart'); -pieChartColors = getChartColorsArray('pieChart'); -if(pieChartColors){ - -var pieChart = new Chart(ispiechart, { - type: 'pie', - data: { - labels: [ - "Desktops", - "Tablets" - ], - datasets: [ - { - data: [300, 180], - backgroundColor: pieChartColors, - hoverBackgroundColor: pieChartColors, - hoverBorderColor: "#fff" - }] - }, - options: { - plugins: { - legend: { - labels: { - font: { - family: 'Poppins', - } - } - }, - } - } -}); -} - -var isdoughnutchart = document.getElementById('doughnut'); -doughnutChartColors = getChartColorsArray('doughnut'); -if(doughnutChartColors){ -var lineChart = new Chart(isdoughnutchart, { - type: 'doughnut', - data: { - labels: [ - "Desktops", - "Tablets" - ], - datasets: [ - { - data: [300, 210], - backgroundColor: doughnutChartColors, - hoverBackgroundColor: doughnutChartColors, - hoverBorderColor: "#fff" - }] - }, - options: { - plugins: { - legend: { - labels: { - font: { - family: 'Poppins', - } - } - }, - } - } -}); -} - -// polarArea chart -var ispolarAreachart = document.getElementById('polarArea'); -polarAreaChartColors = getChartColorsArray('polarArea'); -if(polarAreaChartColors){ -var lineChart = new Chart(ispolarAreachart, { - type: 'polarArea', - data: { - labels: [ - "Series 1", - "Series 2", - "Series 3", - "Series 4" - ], - datasets: [{ - data: [ - 11, - 16, - 7, - 18 - ], - backgroundColor: polarAreaChartColors, - label: 'My dataset', // for legend - hoverBorderColor: "#fff" - }] - }, - options: { - plugins: { - legend: { - labels: { - font: { - family: 'Poppins', - } - } - }, - } - } -}); -} - -// radar chart -var isradarchart = document.getElementById('radar'); -radarChartColors = getChartColorsArray('radar'); -if(radarChartColors){ -var lineChart = new Chart(isradarchart, { - type: 'radar', - data: { - labels: ["Eating", "Drinking", "Sleeping", "Designing", "Coding", "Cycling", "Running"], - datasets: [ - { - label: "Desktops", - backgroundColor: radarChartColors[0], //"rgba(42, 181, 125, 0.2)", - borderColor: radarChartColors[1], //"#2ab57d", - pointBackgroundColor: radarChartColors[1], //"#2ab57d", - pointBorderColor: "#fff", - pointHoverBackgroundColor: "#fff", - pointHoverBorderColor: radarChartColors[1], //"#2ab57d", - data: [65, 59, 90, 81, 56, 55, 40] - }, - { - label: "Tablets", - backgroundColor: radarChartColors[2], //"rgba(81, 86, 190, 0.2)", - borderColor: radarChartColors[3], //"#5156be", - pointBackgroundColor: radarChartColors[3], //"#5156be", - pointBorderColor: "#fff", - pointHoverBackgroundColor: "#fff", - pointHoverBorderColor: radarChartColors[3], //"#5156be", - data: [28, 48, 40, 19, 96, 27, 100] - } - ] - }, - options: { - plugins: { - legend: { - labels: { - font: { - family: 'Poppins', - } - } - }, - } - } -}); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/chat.init.js b/src/main/resources/static/assets/js/pages/chat.init.js deleted file mode 100644 index 378173c..0000000 --- a/src/main/resources/static/assets/js/pages/chat.init.js +++ /dev/null @@ -1,971 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Chat init js -*/ - -(function() { - var dummyUserImage = "assets/images/users/user-dummy-img.jpg"; - var dummyMultiUserImage = "assets/images/users/multi-user.jpg"; - var isreplyMessage = false; - - // favourite btn - document.querySelectorAll(".favourite-btn").forEach(function(item) { - item.addEventListener("click", function(event) { - this.classList.toggle("active"); - }); - }); - - // toggleSelected - function toggleSelected() { - var userChatElement = document.querySelectorAll(".user-chat"); - Array.from(document.querySelectorAll(".chat-user-list li a")).forEach(function(item) { - item.addEventListener("click", function(event) { - userChatElement.forEach(function(elm) { - elm.classList.add("user-chat-show"); - }); - - // chat user list link active - var chatUserList = document.querySelector(".chat-user-list li.active"); - if (chatUserList) chatUserList.classList.remove("active"); - this.parentNode.classList.add("active"); - }); - }); - - // user-chat-remove - document.querySelectorAll(".user-chat-remove").forEach(function(item) { - item.addEventListener("click", function(event) { - userChatElement.forEach(function(elm) { - elm.classList.remove("user-chat-show"); - }); - }); - }); - } - - - //User current Id - var currentChatId = "users-chat"; - var currentSelectedChat = "users"; - var url = "assets/json/"; - var usersList = ""; - var userChatId = 1; - - scrollToBottom(currentChatId); - - //user list by json - var getJSON = function(jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function() { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); - }; - - // get User list - getJSON("chat-users-list.json", function(err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - // set users message list - var users = data[0].users; - users.forEach(function(userData, index) { - var isUserProfile = userData.profile ? '' - : '
' + userData.nickname + '
'; - - var isMessageCount = userData.messagecount ? '
' + - userData.messagecount + - "
" - : ""; - - var messageCount = userData.messagecount ? '' : '' - var activeClass = userData.id === 1 ? "active" : ""; - document.getElementById("userList").innerHTML += - '
  • \ - '+ messageCount + ' \ -
    \ -
    \ -
    \ - ' + isUserProfile + '\ -
    \ -
    \ -
    \ -

    ' + userData.name + "

    \ -
    \ - " + isMessageCount + "\ -
    \ -
    \ -
  • "; - }); - - // set channels list - var channelsData = data[0].channels; - channelsData.forEach(function(isChannel, index) { - var isMessage = isChannel.messagecount - ? '
    ' + - isChannel.messagecount + - "
    " - : ""; - var isMessageCount = isChannel.messagecount ? '
    ' + - isChannel.messagecount + - "
    " - : ""; - var messageCount = isChannel.messagecount ? '' : '' - document.getElementById("channelList").innerHTML += - '
  • \ - '+ messageCount + ' \ -
    \ -
    \ -
    \ -
    #
    \ -
    \ -
    \ -
    \ -

    ' + isChannel.name + "

    \ -
    \ -
    " + isMessage + "
    \ -
    \ -
    \ -
  • "; - }); - } - toggleSelected(); - chatSwap(); - }); - - // get contacts list - getJSON("chat-contacts-list.json", function(err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - usersList = data; - data.sort(function(a, b) { - return a.name.localeCompare(b.name); - }); - // set favourite users list - var msgHTML = ""; - var userNameCharAt = ""; - - usersList.forEach(function(user, index) { - var profile = user.profile - ? '' - : '' + user.nickname + ''; - - msgHTML = - '
  • \ -
    \ -
    \ -
    \ - ' + - profile + - '\ -
    \ -
    \ -
    \ -

    ' + - user.name + - '

    \ -
    \ -
    \ - \ -
    \ -
    \ -
  • '; - var isSortContact = - '
    \ -
    ' + - user.name.charAt(0).toUpperCase() + - '\ -
    \ -
      '; - - if (userNameCharAt != user.name.charAt(0)) { - document.getElementsByClassName("sort-contact")[0].innerHTML += - isSortContact; - } - document.getElementById( - "contact-sort-" + user.name.charAt(0) - ).innerHTML = - document.getElementById("contact-sort-" + user.name.charAt(0)) - .innerHTML + msgHTML; - userNameCharAt = user.name.charAt(0); - +"
    " + "
    "; - }); - } - contactList(); - toggleSelected(); - }); - - function contactList() { - document.querySelectorAll(".sort-contact ul li").forEach(function(item) { - item.addEventListener("click", function(event) { - currentSelectedChat = "users"; - updateSelectedChat(); - var contactName = item.querySelector("li .contactlist-name").innerHTML; - document.querySelector(".user-chat-topbar .text-truncate .username").innerHTML = contactName; - document.querySelector(".profile-offcanvas .username").innerHTML = contactName; - - if (isreplyMessage == true) { - isreplyMessage = false; - document.querySelector(".replyCard").classList.remove("show"); - } - - if (item.querySelector(".align-items-center").querySelector(".avatar-xxs img")) { - var contactImg = item.querySelector(".align-items-center").querySelector(".avatar-xxs .rounded-circle").getAttribute("src"); - document.querySelector(".user-own-img .avatar-xs").setAttribute("src", contactImg); - document.querySelector(".profile-offcanvas .profile-img").setAttribute("src", contactImg); - } else { - document.querySelector(".user-own-img .avatar-xs").setAttribute("src", dummyUserImage); - document.querySelector(".profile-offcanvas .profile-img").setAttribute("src", dummyUserImage); - } - var conversationImg = document.getElementById("users-conversation"); - conversationImg.querySelectorAll(".left .chat-avatar").forEach(function(item3) { - if (contactImg) { - item3.querySelector("img").setAttribute("src", contactImg); - } else { - item3.querySelector("img").setAttribute("src", dummyUserImage); - } - }); - window.stop(); - }); - }); - } - - //user list by json - function getJSONFile(jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function() { - var status = xhr.status; - if (status === 200) { - document.getElementById("elmLoader").innerHTML = ''; - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); - } - // getNextMsgCounts - function getNextMsgCounts(chatsData, i, from_id) { - var counts = 0; - while (chatsData[i]) { - if (chatsData[i + 1] && chatsData[i + 1]["from_id"] == from_id) { - counts++; - i++; - } else { - break; - } - } - return counts; - } - - //getNextMsgs - function getNextMsgs(chatsData, i, from_id, isContinue) { - var msgs = 0; - while (chatsData[i]) { - if (chatsData[i + 1] && chatsData[i + 1]["from_id"] == from_id) { - msgs = getMsg(chatsData[i + 1].id, chatsData[i + 1].msg, chatsData[i + 1].has_images, chatsData[i + 1].has_files, chatsData[i + 1].has_dropDown); - i++; - } else { - break; - } - } - return msgs; - } - - // getMeg - function getMsg(id, msg, has_images, has_files, has_dropDown) { - var msgHTML = '
    '; - if (msg != null) { - msgHTML += '

    ' + msg + "

    "; - } else if (has_images && has_images.length > 0) { - msgHTML += '
    '; - for (i = 0; i < has_images.length; i++) { - msgHTML += - '
    \ -
    \ - \ - \ - \ -
    \ - \ -
    '; - } - msgHTML += "
    "; - } else if (has_files.length > 0) { - msgHTML += - '
    \ -
    \ -
    \ -
    \ -
    \ - \ -
    \ -
    \ -
    \ -
    \ -
    design-phase-1-approved.pdf
    \ -

    12.5 MB

    \ -
    \ -
    \ -
    \ -
    \ -
    \ - \ - \ - \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    '; - } - if (has_dropDown === true) { - msgHTML += - '' - } - msgHTML += '
    '; - return msgHTML; - } - - function updateSelectedChat() { - if (currentSelectedChat == "users") { - document.getElementById("channel-chat").style.display = "none"; - document.getElementById("users-chat").style.display = "block"; - getChatMessages(url + "chats.json"); - } else { - document.getElementById("channel-chat").style.display = "block"; - document.getElementById("users-chat").style.display = "none"; - getChatMessages(url + "chats.json"); - } - } - updateSelectedChat(); - - - //Chat Message - function getChatMessages(jsonFileUrl) { - getJSONFile(jsonFileUrl, function(err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - var chatsData = - currentSelectedChat == "users" ? data[0].chats : data[0].channel_chat; - - document.getElementById( - currentSelectedChat + "-conversation" - ).innerHTML = ""; - var isContinue = 0; - chatsData.forEach(function(isChat, index) { - - if (isContinue > 0) { - isContinue = isContinue - 1; - return; - } - var isAlighn = isChat.from_id == userChatId ? " right" : " left"; - - var user = usersList.find(function(list) { - return list.id == isChat.to_id; - }); - - var msgHTML = '
  • \ -
    '; - if (userChatId != isChat.from_id) - msgHTML += '
    '; - - msgHTML += '
    '; - msgHTML += getMsg(isChat.id, isChat.msg, isChat.has_images, isChat.has_files, isChat.has_dropDown); - if (chatsData[index + 1] && isChat.from_id == chatsData[index + 1]["from_id"]) { - isContinue = getNextMsgCounts(chatsData, index, isChat.from_id); - msgHTML += getNextMsgs(chatsData, index, isChat.from_id, isContinue); - } - - msgHTML += - '
    ' + user.name + '' + isChat.datetime + - '
    '; - msgHTML += "
    \ -
    \ -
  • "; - - document.getElementById(currentSelectedChat + "-conversation").innerHTML += msgHTML; - }); - } - deleteMessage(); - deleteChannelMessage(); - deleteImage(); - replyMessage(); - replyChannelMessage(); - copyMessage(); - copyChannelMessage(); - copyClipboard(); - scrollToBottom("users-chat"); - updateLightbox(); - }); - } - - // GLightbox Popup - function updateLightbox() { - var lightbox = GLightbox({ - selector: ".popup-img", - title: false, - }); - } - - // // Scroll to Bottom - //function scrollToBottom(id) { -/* setTimeout(function() { - var simpleBar = (document.getElementById(id).querySelector("#chat-conversation .simplebar-content-wrapper")) ? - document.getElementById(id).querySelector("#chat-conversation .simplebar-content-wrapper") : '' - - var offsetHeight = document.getElementsByClassName("chat-conversation-list")[0] ? - document.getElementById(id).getElementsByClassName("chat-conversation-list")[0].scrollHeight - window.innerHeight + 335 : 0; - if (offsetHeight) - var scrollEl = new SimpleBar(document.getElementById('chat-conversation')); - scrollEl.getScrollElement().scrollTop = document.getElementById("users-conversation").scrollHeight; - }, 100);*/ - - //} - - function scrollToBottom(id) { - setTimeout(function () { - var simpleBar = document.getElementById(id).querySelector("#chat-conversation .simplebar-content-wrapper"); - var offsetHeight = document.getElementsByClassName("chat-conversation-list")[0] ? document.getElementById(id).getElementsByClassName("chat-conversation-list")[0].scrollHeight - window.innerHeight + 370 : 0; - if(offsetHeight) { - simpleBar.scrollTo({ top: offsetHeight, behavior: "smooth" }); - } - }, 100); - } - - //chat form - var chatForm = document.querySelector("#chatinput-form"); - var chatInput = document.querySelector("#chat-input"); - var chatInputfeedback = document.querySelector(".chat-input-feedback"); - - function currentTime() { - var ampm = new Date().getHours() >= 12 ? "pm" : "am"; - var hour = - new Date().getHours() > 12 ? - new Date().getHours() % 12 : - new Date().getHours(); - var minute = - new Date().getMinutes() < 10 ? - "0" + new Date().getMinutes() : - new Date().getMinutes(); - if (hour < 10) { - return "0" + hour + ":" + minute + " " + ampm; - } else { - return hour + ":" + minute + " " + ampm; - } - } - setInterval(currentTime, 1000); - - var messageIds = 0; - - if (chatForm) { - //add an item to the List, including to local storage - chatForm.addEventListener("submit", function(e) { - e.preventDefault(); - - var chatId = currentChatId; - var chatReplyId = currentChatId; - - var chatInputValue = chatInput.value - - if (chatInputValue.length === 0) { - chatInputfeedback.classList.add("show"); - setTimeout(function() { - chatInputfeedback.classList.remove("show"); - }, 2000); - } else { - if (isreplyMessage == true) { - getReplyChatList(chatReplyId, chatInputValue); - isreplyMessage = false; - } else { - getChatList(chatId, chatInputValue); - } - scrollToBottom(chatId || chatReplyId); - } - chatInput.value = ""; - - //reply msg remove textarea - document.getElementById("close_toggle").click(); - }) - } - - //user Name and user Profile change on click - function chatSwap() { - document.querySelectorAll("#userList li").forEach(function(item) { - item.addEventListener("click", function() { - currentSelectedChat = "users"; - updateSelectedChat(); - currentChatId = "users-chat"; - var contactId = item.getAttribute("id"); - var username = item.querySelector(".text-truncate").innerHTML; - - document.querySelector(".user-chat-topbar .text-truncate .username").innerHTML = username; - document.querySelector(".profile-offcanvas .username").innerHTML = username; - - if (isreplyMessage == true) { - isreplyMessage = false; - document.querySelector(".replyCard").classList.remove("show"); - } - - if (document.getElementById(contactId).querySelector(".userprofile")) { - var userProfile = document.getElementById(contactId).querySelector(".userprofile").getAttribute("src"); - document.querySelector(".user-chat-topbar .avatar-xs").setAttribute("src", userProfile); - document.querySelector(".profile-offcanvas .avatar-lg").setAttribute("src", userProfile); - } else { - document.querySelector(".user-chat-topbar .avatar-xs").setAttribute("src", dummyUserImage); - document.querySelector(".profile-offcanvas .avatar-lg").setAttribute("src", dummyUserImage); - } - - var conversationImg = document.getElementById("users-conversation"); - conversationImg.querySelectorAll(".left .chat-avatar").forEach(function(item) { - if (userProfile) { - item.querySelector("img").setAttribute("src", userProfile); - } else { - item.querySelector("img").setAttribute("src", dummyUserImage); - } - }); - window.stop(); - }); - }); - - //channel Name and channel Profile change on click - document.querySelectorAll("#channelList li").forEach(function(item) { - item.addEventListener("click", function() { - currentChatId = "channel-chat"; - currentSelectedChat = "channel"; - updateSelectedChat(); - var channelname = item.querySelector(".text-truncate").innerHTML; - var changeChannelName = document.getElementById("channel-chat"); - changeChannelName.querySelector(".user-chat-topbar .text-truncate .username").innerHTML = channelname; - document.querySelector(".profile-offcanvas .username").innerHTML = channelname; - - changeChannelName.querySelector(".user-chat-topbar .avatar-xs").setAttribute("src", dummyMultiUserImage); - document.querySelector(".profile-offcanvas .avatar-lg").setAttribute("src", dummyMultiUserImage); - if (isreplyMessage == true) { - isreplyMessage = false; - document.querySelector(".replyCard").classList.remove("show"); - } - }); - }); - }; - - //Copy Message to clipboard - var itemList = document.querySelector(".chat-conversation-list"); - function copyMessage() { - var copyMessage = itemList.querySelectorAll(".copy-message"); - copyMessage.forEach(function(item) { - item.addEventListener("click", function() { - var isText = item.closest(".ctext-wrap").children[0] - ? item.closest(".ctext-wrap").children[0].children[0].innerText - : ""; - navigator.clipboard.writeText(isText); - }); - }); - } - - function copyChannelMessage() { - var copyChannelMessage = channelItemList.querySelectorAll(".copy-message"); - copyChannelMessage.forEach(function(item) { - item.addEventListener("click", function() { - var isText = item.closest(".ctext-wrap").children[0] - ? item.closest(".ctext-wrap").children[0].children[0].innerText - : ""; - navigator.clipboard.writeText(isText); - }); - }); - } - - - //Copy Message Alert - function copyClipboard() { - var copyClipboardAlert = document.querySelectorAll(".copy-message"); - copyClipboardAlert.forEach(function(item) { - item.addEventListener("click", function() { - document.getElementById("copyClipBoard").style.display = "block"; - document.getElementById("copyClipBoardChannel").style.display = "block"; - setTimeout(hideclipboard, 1000); - function hideclipboard() { - document.getElementById("copyClipBoard").style.display = "none"; - document.getElementById("copyClipBoardChannel").style.display = - "none"; - } - }); - }); - } - - //Delete Message - function deleteMessage() { - var deleteItems = itemList.querySelectorAll(".delete-item"); - deleteItems.forEach(function(item) { - item.addEventListener("click", function() { - item.closest(".user-chat-content").childElementCount == 2 - ? item.closest(".chat-list").remove() - : item.closest(".ctext-wrap").remove(); - }); - }); - } - - //Delete Image - function deleteImage() { - var deleteImage = itemList.querySelectorAll(".chat-conversation-list .chat-list"); - deleteImage.forEach(function(item) { - item.querySelectorAll(".delete-image").forEach(function(subitem) { - subitem.addEventListener("click", function() { - subitem.closest(".message-img").childElementCount == 1 - ? subitem.closest(".chat-list").remove() - : subitem.closest(".message-img-list").remove(); - }); - }); - }); - } - deleteImage(); - - //Delete Channel Message - var channelItemList = document.querySelector("#channel-conversation"); - function deleteChannelMessage() { - channelChatList = channelItemList.querySelectorAll(".delete-item"); - channelChatList.forEach(function(item) { - item.addEventListener("click", function() { - item.closest(".user-chat-content").childElementCount == 2 - ? item.closest(".chat-list").remove() - : item.closest(".ctext-wrap").remove(); - }); - }); - } - deleteChannelMessage(); - - //Reply Message - function replyMessage() { - var replyMessage = itemList.querySelectorAll(".reply-message"); - var replyToggleOpen = document.querySelector(".replyCard"); - var replyToggleClose = document.querySelector("#close_toggle"); - - replyMessage.forEach(function(item) { - item.addEventListener("click", function() { - isreplyMessage = true; - replyToggleOpen.classList.add("show"); - replyToggleClose.addEventListener("click", function() { - replyToggleOpen.classList.remove("show"); - }); - - var replyMsg = item.closest(".ctext-wrap").children[0].children[0].innerText; - document.querySelector(".replyCard .replymessage-block .flex-grow-1 .mb-0").innerText = replyMsg; - var replyuser = document.querySelector(".user-chat-topbar .text-truncate .username").innerHTML; - var msgOwnerName = (item.closest(".chat-list")) ? item.closest(".chat-list").classList.contains("left") ? replyuser : 'You' : replyuser; - document.querySelector(".replyCard .replymessage-block .flex-grow-1 .conversation-name").innerText = msgOwnerName; - }); - }); - } - - //reply Channelmessage - function replyChannelMessage() { - var replyChannelMessage = channelItemList.querySelectorAll(".reply-message"); - var replyChannelToggleOpen = document.querySelector(".replyCard"); - var replyChannelToggleClose = document.querySelector("#close_toggle"); - - replyChannelMessage.forEach(function(item) { - item.addEventListener("click", function() { - isreplyMessage = true; - replyChannelToggleOpen.classList.add("show"); - replyChannelToggleClose.addEventListener("click", function() { - replyChannelToggleOpen.classList.remove("show"); - }); - var replyChannelMsg = item.closest(".ctext-wrap").children[0].children[0].innerText; - document.querySelector(".replyCard .replymessage-block .flex-grow-1 .mb-0").innerText = replyChannelMsg; - var replyChanneluser = item.closest(".user-chat-content").querySelector(".conversation-name .name").innerText; - var msgOwnerName = (item.closest(".chat-list")) ? item.closest(".chat-list").classList.contains("left") ? replyChanneluser : 'You' : replyChanneluser; - document.querySelector(".replyCard .replymessage-block .flex-grow-1 .conversation-name").innerText = msgOwnerName; - }); - }); - } - - //Append New Message - var getChatList = function(chatid, chatItems) { - messageIds++; - var chatConList = document.getElementById(chatid); - var itemList = chatConList.querySelector(".chat-conversation-list"); - - if (chatItems != null) { - itemList.insertAdjacentHTML( - "beforeend", - '
  • \ -
    \ -
    \ -
    \ -
    \ -

    \ - ' + - chatItems + '\ -

    \ -
    \ - \ -
    \ -
    \ - ' + - currentTime() + - '\ - \ -
    \ -
    \ -
    \ -
  • ' - ); - } - - // remove chat list - var newChatList = document.getElementById("chat-list-" + messageIds); - newChatList.querySelectorAll(".delete-item").forEach(function(subitem) { - subitem.addEventListener("click", function() { - itemList.removeChild(newChatList); - }); - }); - - //Copy Message - newChatList.querySelectorAll(".copy-message").forEach(function(subitem) { - subitem.addEventListener("click", function() { - var currentValue = - newChatList.childNodes[1].firstElementChild.firstElementChild - .firstElementChild.firstElementChild.innerText; - navigator.clipboard.writeText(currentValue); - }); - }); - - //Copy Clipboard alert - newChatList.querySelectorAll(".copy-message").forEach(function(subitem) { - subitem.addEventListener("click", function() { - document.getElementById("copyClipBoard").style.display = "block"; - setTimeout(hideclipboardNew, 1000); - - function hideclipboardNew() { - document.getElementById("copyClipBoard").style.display = "none"; - } - }); - }); - - //reply Message model - newChatList.querySelectorAll(".reply-message").forEach(function(subitem) { - subitem.addEventListener("click", function() { - var replyToggleOpenNew = document.querySelector(".replyCard"); - var replyToggleCloseNew = document.querySelector("#close_toggle"); - var replyMessageNew = subitem.closest(".ctext-wrap").children[0].children[0].innerText; - var replyUserNew = document.querySelector(".replyCard .replymessage-block .flex-grow-1 .conversation-name").innerHTML; - isreplyMessage = true; - replyToggleOpenNew.classList.add("show"); - replyToggleCloseNew.addEventListener("click", function() { - replyToggleOpenNew.classList.remove("show"); - }); - var msgOwnerName = (subitem.closest(".chat-list")) ? subitem.closest(".chat-list").classList.contains("left") ? replyUserNew : 'You' : replyUserNew; - document.querySelector(".replyCard .replymessage-block .flex-grow-1 .conversation-name").innerText = msgOwnerName; - document.querySelector(".replyCard .replymessage-block .flex-grow-1 .mb-0").innerText = replyMessageNew; - }); - }); - }; - - var messageboxcollapse = 0; - - //message with reply - var getReplyChatList = function(chatReplyId, chatReplyItems) { - var chatReplyUser = document.querySelector(".replyCard .replymessage-block .flex-grow-1 .conversation-name").innerHTML; - var chatReplyMessage = document.querySelector(".replyCard .replymessage-block .flex-grow-1 .mb-0").innerText; - - messageIds++; - var chatreplyConList = document.getElementById(chatReplyId); - var itemReplyList = chatreplyConList.querySelector(".chat-conversation-list"); - if (chatReplyItems != null) { - itemReplyList.insertAdjacentHTML( - "beforeend", - '
  • \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    ' + chatReplyUser + '
    \ -

    ' + chatReplyMessage + '

    \ -
    \ -
    \ - \ -
    \ -
    \ -

    \ - ' + chatReplyItems + '\ -

    \ -
    \ - \ -
    \ -
    \ - ' + currentTime() + '\ - \ -
    \ -
    \ -
    \ -
  • ' - ); - messageboxcollapse++; - } - - // remove chat list - var newChatList = document.getElementById("chat-list-" + messageIds); - newChatList.querySelectorAll(".delete-item").forEach(function(subitem) { - subitem.addEventListener("click", function() { - itemList.removeChild(newChatList); - }); - }); - - //Copy Clipboard alert - newChatList.querySelectorAll(".copy-message").forEach(function(subitem) { - subitem.addEventListener("click", function() { - document.getElementById("copyClipBoard").style.display = "block"; - document.getElementById("copyClipBoardChannel").style.display = "block"; - setTimeout(hideclipboardNew, 1000); - - function hideclipboardNew() { - document.getElementById("copyClipBoard").style.display = "none"; - document.getElementById("copyClipBoardChannel").style.display = "none"; - } - }); - }); - - newChatList.querySelectorAll(".reply-message").forEach(function(subitem) { - subitem.addEventListener("click", function() { - var replyMessage = subitem.closest(".ctext-wrap").children[0].children[0].innerText; - var replyuser = document.querySelector(".user-chat-topbar .text-truncate .username").innerHTML; - document.querySelector(".replyCard .replymessage-block .flex-grow-1 .mb-0").innerText = replyMessage; - var msgOwnerName = (subitem.closest(".chat-list")) ? subitem.closest(".chat-list").classList.contains("left") ? replyuser : 'You' : replyuser; - document.querySelector(".replyCard .replymessage-block .flex-grow-1 .conversation-name").innerText = msgOwnerName; - }); - }); - - //Copy Message - newChatList.querySelectorAll(".copy-message").forEach(function(subitem) { - subitem.addEventListener("click", function() { - newChatList.childNodes[1].children[1].firstElementChild.firstElementChild.getAttribute("id"); - isText = newChatList.childNodes[1].children[1].firstElementChild.firstElementChild.innerText; - navigator.clipboard.writeText(isText); - }); - }); - }; - - - var emojiPicker = new FgEmojiPicker({ - trigger: [".emoji-btn"], - removeOnSelection: false, - closeButton: true, - position: ["top", "right"], - preFetch: true, - dir: "assets/js/pages/plugins/json", - insertInto: document.querySelector(".chat-input"), - }); - - // emojiPicker position - var emojiBtn = document.getElementById("emoji-btn"); - emojiBtn.addEventListener("click", function() { - setTimeout(function() { - var fgEmojiPicker = document.getElementsByClassName("fg-emoji-picker")[0]; - if (fgEmojiPicker) { - var leftEmoji = window.getComputedStyle(fgEmojiPicker) ? window.getComputedStyle(fgEmojiPicker).getPropertyValue("left") : ""; - if (leftEmoji) { - leftEmoji = leftEmoji.replace("px", ""); - leftEmoji = leftEmoji - 40 + "px"; - fgEmojiPicker.style.left = leftEmoji; - } - } - }, 0); - }); - -})(); -//Search Message -function searchMessages() { - var searchInput, searchFilter, searchUL, searchLI, a, i, txtValue; - searchInput = document.getElementById("searchMessage"); - searchFilter = searchInput.value.toUpperCase(); - searchUL = document.getElementById("users-conversation"); - searchLI = searchUL.getElementsByTagName("li"); - searchLI.forEach(function(search) { - a = search.getElementsByTagName("p")[0] ? search.getElementsByTagName("p")[0] : ''; - txtValue = a.textContent || a.innerText ? a.textContent || a.innerText : ''; - if (txtValue.toUpperCase().indexOf(searchFilter) > -1) { - search.style.display = ""; - } else { - search.style.display = "none"; - } - }); -}; \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/coming-soon.init.js b/src/main/resources/static/assets/js/pages/coming-soon.init.js deleted file mode 100644 index de428f3..0000000 --- a/src/main/resources/static/assets/js/pages/coming-soon.init.js +++ /dev/null @@ -1,54 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.comom -File: Coming soon Init Js File -*/ - -document.addEventListener('DOMContentLoaded', function () { - - // Set the date we're counting down to - var countDownDate = new Date("Jan 1, 2025").getTime(); - - // Update the count down every 1 second - var countDown = setInterval(function () { - - // Get today's date and time - var currentTime = new Date().getTime(); - - // Find the distance between currentTime and the count down date - var distance = countDownDate - currentTime; - - // Time calculations for days, hours, minutes and seconds - var days = Math.floor(distance / (1000 * 60 * 60 * 24)); - var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); - var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); - var seconds = Math.floor((distance % (1000 * 60)) / 1000); - - var countDownBlock = '
    '+ - '
    Days
    '+'
    '+ days +'
    '+ - '
    '+ - '
    '+ - '
    Hours
    '+'
    '+ hours +'
    '+ - '
    '+ - '
    '+ - '
    Minutes
    '+'
    '+ minutes +'
    '+ - '
    '+ - '
    '+ - '
    Seconds
    '+'
    '+ seconds +'
    '+ - '
    '; - - // Output the result in an element with id="countDownBlock" - if(document.getElementById("countdown")){ - document.getElementById("countdown").innerHTML = countDownBlock; - } - // If the count down is over, write some text - if (distance < 0) { - clearInterval(countDown); - document.getElementById("countdown").innerHTML = '
    The countdown has ended!
    '; - } - }, 1000); - -}); - diff --git a/src/main/resources/static/assets/js/pages/crm-companies.init.js b/src/main/resources/static/assets/js/pages/crm-companies.init.js deleted file mode 100644 index e325160..0000000 --- a/src/main/resources/static/assets/js/pages/crm-companies.init.js +++ /dev/null @@ -1,513 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: CRM-companies Js File -*/ - - -// list js -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; - for (var i = 0; i < checkboxes.length; i++) { - checkboxes[i].checked = this.checked; - if (checkboxes[i].checked) { - checkboxes[i].closest("tr").classList.add("table-active"); - } else { - checkboxes[i].closest("tr").classList.remove("table-active"); - } - } - - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; - }; -} - -var perPage = 8; -var editlist = false; - -//Table -var options = { - valueNames: [ - "id", - "name", - "owner", - "industry_type", - "star_value", - "location", - "employee", - "website", - "contact_email", - "since", - { attr: "src", name: "image_src" } - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; -// Init list -var companyList = new List("companyList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -const xhttp = new XMLHttpRequest(); -xhttp.onload = function () { - var json_records = JSON.parse(this.responseText); - Array.from(json_records).forEach(function (raw){ - companyList.add({ - id: '#VZ' + raw.id + "", - name: raw.name, - owner: raw.owner, - desc: raw.desc, - industry_type: raw.industry_type, - star_value: raw.star_value, - location: raw.location, - employee: raw.employee, - website: raw.website, - contact_email: raw.contact_email, - since: raw.since, - image_src: raw.image_src - }); - companyList.sort('id', { order: "desc" }); - refreshCallbacks(); - }); - companyList.remove("id", `#VZ001`); -} -xhttp.open("GET", "assets/json/company-list.json"); -xhttp.send(); - -isCount = new DOMParser().parseFromString( - companyList.items.slice(-1)[0]._values.id, - "text/html" -); - -// customer image -document.querySelector("#company-logo-input").addEventListener("change", function () { - var preview = document.querySelector("#companylogo-img"); - var file = document.querySelector("#company-logo-input").files[0]; - var reader = new FileReader(); - reader.addEventListener("load",function () { - preview.src = reader.result; - },false); - if (file) { - reader.readAsDataURL(file); - } -}); - -var isValue = isCount.body.firstElementChild.innerHTML; - -var idField = document.getElementById("id-field"), - companyNameField = document.getElementById("companyname-field"), - companyLogoImg = document.getElementById("companylogo-img"), - ownerField = document.getElementById("owner-field"), - industry_typeField = document.getElementById("industry_type-field"), - star_valueField = document.getElementById("star_value-field"), - locationField = document.getElementById("location-field"), - employeeField = document.getElementById("employee-field"), - websiteField = document.getElementById("website-field"), - contact_emailField = document.getElementById("contact_email-field"), - sinceField = document.getElementById("since-field"), - - addBtn = document.getElementById("add-btn"), - editBtn = document.getElementById("edit-btn"), - removeBtns = document.getElementsByClassName("remove-item-btn"), - editBtns = document.getElementsByClassName("edit-item-btn"); - viewBtns = document.getElementsByClassName("view-item-btn"); -refreshCallbacks(); - -document.getElementById("showModal").addEventListener("show.bs.modal", function (e) { - if (e.relatedTarget.classList.contains("edit-item-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Edit Company"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Update"; - } else if (e.relatedTarget.classList.contains("add-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Add Company"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Add Company"; - } else { - document.getElementById("exampleModalLabel").innerHTML = "List Company"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "none"; - } -}); -ischeckboxcheck(); - -document.getElementById("showModal").addEventListener("hidden.bs.modal", function () { - clearFields(); -}); - -document.querySelector("#companyList").addEventListener("click", function () { - ischeckboxcheck(); -}); - -var table = document.getElementById("customerTable"); -// save all tr -var tr = table.getElementsByTagName("tr"); -var trlist = table.querySelectorAll(".list tr"); - -var count = 11; -var forms = document.querySelectorAll('.tablelist-form') -Array.prototype.slice.call(forms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - if ( - companyNameField.value !== "" && - ownerField.value !== "" && - industry_typeField.value !== "" && - star_valueField.value !== "" && - locationField.value !== "" && - employeeField.value !== "" && - websiteField.value !== "" && - contact_emailField.value !== "" && - sinceField.value !== "" && !editlist) { - companyList.add({ - id: '#VZ' + count + "", - image_src: companyLogoImg.src, - name: companyNameField.value, - owner: ownerField.value, - industry_type: industry_typeField.value, - star_value: star_valueField.value, - location: locationField.value, - employee: employeeField.value, - website: websiteField.value, - contact_email: contact_emailField.value, - since: sinceField.value - - }); - companyList.sort('id', { order: "desc" }); - document.getElementById("close-modal").click(); - clearFields(); - refreshCallbacks(); - count++; - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Company inserted successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - }else if( - companyNameField.value !== "" && - ownerField.value !== "" && - industry_typeField.value !== "" && - star_valueField.value !== "" && - locationField.value !== "" && - employeeField.value !== "" && - websiteField.value !== "" && - contact_emailField.value !== "" && - sinceField.value !== "" && editlist) { - var editValues = companyList.get({ - id: idField.value, - }); - Array.from(editValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - x.values({ - id: `${idField.value}`, - image_src: companyLogoImg.src, - name: companyNameField.value, - owner: ownerField.value, - industry_type: industry_typeField.value, - star_value: star_valueField.value, - location: locationField.value, - employee: employeeField.value, - website: websiteField.value, - contact_email: contact_emailField.value, - since: sinceField.value - }); - } - }); - document.getElementById("close-modal").click(); - clearFields(); - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Company updated Successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } - } - }, false) -}) - - -function ischeckboxcheck() { - Array.from(document.getElementsByName("chk_child")).forEach(function (x) { - x.addEventListener("change", function (e) { - if (x.checked == true) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - - var checkedCount = document.querySelectorAll('[name="chk_child"]:checked').length; - if (e.target.closest("tr").classList.contains("table-active")) { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } - }); - }); -} - - -function refreshCallbacks() { - if(removeBtns){ - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = companyList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - companyList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecord-close").click(); - }); - } - }); - }); - }); - } - - if(editBtns){ - Array.from(editBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = companyList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - editlist = true; - idField.value = selectedid; - companyLogoImg.src = x._values.image_src; - companyNameField.value = x._values.name; - ownerField.value = x._values.owner; - industry_typeField.value = x._values.industry_type; - star_valueField.value = x._values.star_value; - locationField.value = x._values.location; - employeeField.value = x._values.employee; - websiteField.value = x._values.website; - contact_emailField.value = x._values.contact_email; - sinceField.value = x._values.since; - } - }); - }); - }); - } - - Array.from(viewBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = companyList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - var codeBlock = ` -
    -
    -
    -
    - -
    -
    -
    -
    ${x._values.name}
    -

    ${x._values.owner}

    - - -
    -
    -
    Information
    -

    ${x._values.desc}

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Industry Type${x._values.industry_type}
    Location${x._values.location}
    Employee${x._values.employee}
    Rating${x._values.star_value}
    Website - ${x._values.website} -
    Contact Email${x._values.contact_email}
    Since${x._values.since}
    -
    -
    - `; - document.getElementById('company-view-detail').innerHTML = codeBlock; - } - }); - }); - }); -} - -function clearFields() { - companyLogoImg.src = "assets/images/users/multi-user.jpg"; - companyNameField.value = ""; - ownerField.value = ""; - industry_typeField.value = ""; - star_valueField.value = ""; - locationField.value = ""; - employeeField.value = ""; - websiteField.value = ""; - contact_emailField.value = ""; - sinceField.value = ""; -} - -// Delete Multiple Records -function deleteMultiple(){ - ids_array = []; - var items = document.getElementsByName('chk_child'); - for (i = 0; i < items.length; i++) { - if (items[i].checked == true) { - var trNode = items[i].parentNode.parentNode.parentNode; - var id = trNode.querySelector("td a").innerHTML; - ids_array.push(id); - } - } - if (typeof ids_array !== 'undefined' && ids_array.length > 0) { - Swal.fire({ - title: "Are you sure?", - text: "You won't be able to revert this!", - icon: "warning", - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - confirmButtonText: "Yes, delete it!", - buttonsStyling: false, - showCloseButton: true - }).then(function (result) { - if (result.value) { - for (i = 0; i < ids_array.length; i++) { - companyList.remove("id", `${ids_array[i]}`); - } - document.getElementById("remove-actions").style.display = 'none'; - document.getElementById("checkAll").checked = false; - Swal.fire({ - title: 'Deleted!', - text: 'Your data has been deleted.', - icon: 'success', - confirmButtonClass: 'btn btn-info w-xs mt-2', - buttonsStyling: false - }); - } - }); - } else { - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -} - -document.querySelector(".pagination-next").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; -}); -document.querySelector(".pagination-prev").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/crm-contact.init.js b/src/main/resources/static/assets/js/pages/crm-contact.init.js deleted file mode 100644 index 6db0a9b..0000000 --- a/src/main/resources/static/assets/js/pages/crm-contact.init.js +++ /dev/null @@ -1,570 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: CRM-contact Js File -*/ - - -// list js -function timeConvert(time) { - var d = new Date(time); - time_s = (d.getHours() + ':' + d.getMinutes()); - var t = time_s.split(":"); - var hours = t[0]; - var minutes = t[1]; - var newformat = hours >= 12 ? 'PM' : 'AM'; - hours = hours % 12; - hours = hours ? hours : 12; - minutes = minutes < 10 ? '0' + minutes : minutes; - return (hours + ':' + minutes + '' + newformat); -} - -function formatDate(date) { - var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - var d = new Date(date), - month = '' + monthNames[(d.getMonth())], - day = '' + d.getDate(), - year = d.getFullYear(); - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - return [day + " " + month, year].join(', '); -}; - -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; - for (var i = 0; i < checkboxes.length; i++) { - checkboxes[i].checked = this.checked; - if (checkboxes[i].checked) { - checkboxes[i].closest("tr").classList.add("table-active"); - } else { - checkboxes[i].closest("tr").classList.remove("table-active"); - } - } - - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; - }; -} - -var perPage = 8; -var editlist = false; - -//Table -var options = { - valueNames: [ - "id", - "name", - "company_name", - "designation", - "date", - "email_id", - "phone", - "lead_score", - "tags", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; - -// Init list -var contactList = new List("contactList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -const xhttp = new XMLHttpRequest(); -xhttp.onload = function () { - var json_records = JSON.parse(this.responseText); - Array.from(json_records).forEach(function (raw){ - var tags = raw.tags; - var tagHtml = ''; - Array.from(tags).forEach((tag, index) => { - tagHtml += ''+tag+'' - }) - - contactList.add({ - id: `#VZ${raw.id}`, - name: '
    \ -
    \ -
    '+raw.name[1]+'
    \ -
    ', - company_name: raw.company_name, - desc: raw.desc, - designation: raw.designation, - date: formatDate(raw.date)+' '+timeConvert(raw.date)+'', - email_id: raw.email_id, - phone: raw.phone, - lead_score: raw.lead_score, - tags: tagHtml, - }); - contactList.sort('id', { order: "desc" }); - refreshCallbacks(); - }); - contactList.remove("id", `#VZ001`); -} -xhttp.open("GET", "assets/json/contact-list.json"); -xhttp.send(); - -isCount = new DOMParser().parseFromString( - contactList.items.slice(-1)[0]._values.id, - "text/html" -); - -// customer image -document.querySelector("#customer-image-input").addEventListener("change", function () { - var preview = document.querySelector("#customer-img"); - var file = document.querySelector("#customer-image-input").files[0]; - var reader = new FileReader(); - reader.addEventListener("load",function () { - preview.src = reader.result; - },false); - if (file) { - reader.readAsDataURL(file); - } -}); - -var idField = document.getElementById("id-field"), - customerImg = document.getElementById("customer-img"), - customerNameField = document.getElementById("customername-field"), - company_nameField = document.getElementById("company_name-field"), - designationField = document.getElementById("designation-field"), - email_idField = document.getElementById("email_id-field"), - phoneField = document.getElementById("phone-field"), - lead_scoreField = document.getElementById("lead_score-field"), - addBtn = document.getElementById("add-btn"), - editBtn = document.getElementById("edit-btn"), - removeBtns = document.getElementsByClassName("remove-item-btn"), - editBtns = document.getElementsByClassName("edit-item-btn"); - viewBtns = document.getElementsByClassName("view-item-btn"); -refreshCallbacks(); - -document.getElementById("showModal").addEventListener("show.bs.modal", function (e) { - if (e.relatedTarget.classList.contains("edit-item-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Edit Contact"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Update"; - } else if (e.relatedTarget.classList.contains("add-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Add Contact"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Add Contact"; - } else { - document.getElementById("exampleModalLabel").innerHTML = "List Contact"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "none"; - } -}); -ischeckboxcheck(); - -document.getElementById("showModal").addEventListener("hidden.bs.modal", function (e) { - clearFields(); -}); - -document.querySelector("#contactList").addEventListener("click", function () { - ischeckboxcheck(); -}); - -var table = document.getElementById("customerTable"); -// save all tr -var tr = table.getElementsByTagName("tr"); -var trlist = table.querySelectorAll(".list tr"); - -// date & time -var dateValue = new Date().toUTCString().slice(5, 16); -function currentTime() { - var ampm = new Date().getHours() >= 12 ? "PM" : "AM"; - var hour = - new Date().getHours() > 12 - ? new Date().getHours() % 12 - : new Date().getHours(); - var minute = - new Date().getMinutes() < 10 - ? "0" + new Date().getMinutes() - : new Date().getMinutes(); - if (hour < 10) { - return "0" + hour + ":" + minute + " " + ampm; - } else { - return hour + ":" + minute + " " + ampm; - } -} -setInterval(currentTime, 1000); - - -var count = 11; -// multiple Remove CancelButton -var tagInputField = new Choices('#taginput-choices', { - removeItemButton: true, - } -); - -var tagInputFieldValue = tagInputField.getValue(true); -var tagHtmlValue = ''; -Array.from(tagInputFieldValue).forEach((tag, index) => { - tagHtmlValue += ''+tag+'' -}) -var forms = document.querySelectorAll('.tablelist-form') -Array.prototype.slice.call(forms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - if (customerNameField.value !== "" && - company_nameField.value !== "" && - email_idField.value !== "" && - phoneField.value !== "" && - lead_scoreField.value !== "" && - designationField.value !== "" && !editlist) { - - var tagInputFieldValue = tagInputField.getValue(true); - var tagHtmlValue = ''; - Array.from(tagInputFieldValue).forEach((tag, index) => { - tagHtmlValue += '' + tag + '' - }) - contactList.add({ - id: `#VZ${count}`, - // name: customerNameField.value, - name: '
    \ -
    \ -
    '+ customerNameField.value + '
    \ -
    ', - company_name: company_nameField.value, - designation: designationField.value, - email_id: email_idField.value, - phone: phoneField.value, - lead_score: lead_scoreField.value, - tags: tagHtmlValue, - date: dateValue + ' ' + currentTime() + '' - }); - contactList.sort('id', { order: "desc" }); - document.getElementById("close-modal").click(); - clearFields(); - refreshCallbacks(); - count++; - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Contact inserted successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - }else if (customerNameField.value !== "" && - company_nameField.value !== "" && - email_idField.value !== "" && - phoneField.value !== "" && - lead_scoreField.value !== "" && - designationField.value !== "" && editlist) { - var editValues = contactList.get({ - id: idField.value, - }); - Array.from(editValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - var tagInputFieldValue = tagInputField.getValue(true); - var tagHtmlValue = ''; - Array.from(tagInputFieldValue).forEach((tag, index) => { - tagHtmlValue += '' + tag + '' - }) - if (selectedid == itemId) { - x.values({ - id: `#VZ${idField.value}`, - name: '
    \ -
    \ -
    '+customerNameField.value+'
    \ -
    ', - company_name: company_nameField.value, - designation: designationField.value, - email_id: email_idField.value, - phone: phoneField.value, - lead_score: lead_scoreField.value, - tags: tagHtmlValue, - date: dateValue + ' '+currentTime()+'' - }); - } - }); - document.getElementById("close-modal").click(); - clearFields(); - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Contact updated Successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } - } - }, false) -}) - - -function ischeckboxcheck() { - Array.from(document.getElementsByName("chk_child")).forEach(function (x) { - x.addEventListener("change", function (e) { - if (x.checked == true) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - - var checkedCount = document.querySelectorAll('[name="chk_child"]:checked').length; - if (e.target.closest("tr").classList.contains("table-active")) { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } - }); - }); -} - -function refreshCallbacks() { - if(removeBtns){ - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = contactList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - contactList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecord-close").click(); - }); - } - }); - }); - }); - } - - if(editBtns){ - Array.from(editBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = contactList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - var tagBadge = new DOMParser().parseFromString(x._values.tags, "text/html").body.querySelectorAll("span.badge"); - if (selectedid == itemId) { - editlist = true; - idField.value = selectedid; - customerImg.src = new DOMParser().parseFromString(x._values.name, "text/html").body.querySelector("img").src - customerNameField.value = new DOMParser().parseFromString(x._values.name, "text/html").body.querySelector(".name").innerHTML; - company_nameField.value = x._values.company_name; - designationField.value = x._values.designation; - email_idField.value = x._values.email_id; - phoneField.value = x._values.phone; - lead_scoreField.value = x._values.lead_score; - if(tagBadge){ - Array.from(tagBadge).forEach((item) => { - tagInputField.setChoiceByValue(item.innerHTML); - }) - } - - } - }); - }); - }); - } - - Array.from(viewBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = contactList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - var codeBlock = ` -
    -
    - - -
    -
    ${new DOMParser().parseFromString(x._values.name, "text/html").body.querySelector(".name").innerHTML}
    -

    ${x._values.company_name}

    - - -
    -
    -
    Personal Information
    -

    ${x._values.desc}

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Designation${x._values.designation}
    Email ID${x._values.email_id}
    Phone No${x._values.phone}
    Lead Score${x._values.lead_score}
    Tags${x._values.tags}
    Last Contacted${x._values.date}
    -
    -
    `; - document.getElementById('contact-view-detail').innerHTML = codeBlock; - } - }); - }); - }); -} - -function clearFields() { - customerImg.src = "assets/images/users/user-dummy-img.jpg"; - customerNameField.value = ""; - company_nameField.value = ""; - designationField.value = ""; - email_idField.value = ""; - phoneField.value = ""; - lead_scoreField.value = ""; - tagInputField.removeActiveItems(); - tagInputField.setChoiceByValue("0"); -} - -// Delete All Records -function deleteMultiple(){ - ids_array = []; - var items = document.getElementsByName('chk_child'); - for (i = 0; i < items.length; i++) { - if (items[i].checked == true) { - var trNode = items[i].parentNode.parentNode.parentNode; - var id = trNode.querySelector("td a").innerHTML; - ids_array.push(id); - } - } - - if(typeof ids_array !== 'undefined' && ids_array.length > 0){ - Swal.fire({ - title: "Are you sure?", - text: "You won't be able to revert this!", - icon: "warning", - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - confirmButtonText: "Yes, delete it!", - buttonsStyling: false, - showCloseButton: true - }).then(function (result) { - if (result.value) { - for (i = 0; i < ids_array.length; i++) { - contactList.remove("id", `${ids_array[i]}`); - } - document.getElementById("remove-actions").style.display = 'none'; - document.getElementById("checkAll").checked = false; - Swal.fire({ - title: 'Deleted!', - text: 'Your data has been deleted.', - icon: 'success', - confirmButtonClass: 'btn btn-info w-xs mt-2', - buttonsStyling: false - }); - } - }); - }else{ - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -} - -document.querySelector(".pagination-next").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; -}); -document.querySelector(".pagination-prev").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/crm-deals.init.js b/src/main/resources/static/assets/js/pages/crm-deals.init.js deleted file mode 100644 index 34e9fb0..0000000 --- a/src/main/resources/static/assets/js/pages/crm-deals.init.js +++ /dev/null @@ -1,141 +0,0 @@ -var contactNo = new Cleave("#contactNumber", { - delimiters: ['(', ')', '-'], - blocks: [0, 3, 3, 4] -}); - -var str_dt = function formatDate(date) { - var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - var d = new Date(date), - month = '' + monthNames[(d.getMonth())], - day = '' + d.getDate(), - year = d.getFullYear(); - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - return [day + " " + month, year].join(', '); -}; - -form = document.getElementById("deals-form"); - -form.addEventListener('submit', function (event) { - event.preventDefault(); - if (!form.checkValidity()) { - event.preventDefault() - form.classList.add('was-validated') - } else { - var dealTitle = document.getElementById("dealTitle").value; - var dealValue = document.getElementById("dealValue").value; - var deatType = document.getElementById("deatType").value; - var dealOwner = document.getElementById("dealOwner").value; - var dueDate = document.getElementById("dueDate").value; - var contactNumber = document.getElementById("contactNumber").value; - var contactEmail = document.getElementById("dealEmail").value; - var contactDescription = document.getElementById("contactDescription").value; - var avtar_title = dealOwner.split(" "); - var letters = null; - - if (avtar_title.length >= 2) { - var first_letter = avtar_title[0].slice(0, 1); - var secont_letter = avtar_title[1].slice(0, 1); - letters = first_letter + secont_letter - } else { - var first_letter = avtar_title[0].slice(0, 1); - letters = first_letter - } - - var avatar_ = `
    ` + letters + `
    `; - var newDeals = `
    - -
    -
    -
    ` + dealOwner + ` 4 Days
    -

    ` + contactDescription + `

    -
      -
    • -
      -
      - -
      -
      -
      Meeting with Thomas
      - Yesterday at 9:12AM -
      -
      -
    • -
    • -
      -
      - -
      -
      -
      Product Demo
      - Monday at 04:41PM -
      -
      -
    • -
    • -
      -
      - -
      -
      -
      Marketing Team Meeting
      - Monday at 04:41PM -
      -
      -
    • -
    -
    - -
    -
    ` - - let collapseShow; - switch (deatType) { - case 'Lead Disovered': - collapseShow = "leadDiscovered"; - break; - case 'Contact Initiated': - collapseShow = "contactInitiated"; - break; - case 'Need Identified': - collapseShow = "needsIdentified"; - break; - case 'Meeting Arranged': - collapseShow = "meetingArranged"; - break; - case 'Offer Accepted': - collapseShow = "offerAccepted"; - break; - } - - document.getElementById("close-modal").click(); - document.getElementById(collapseShow).innerHTML += newDeals; - form.reset(); - Swal.fire({ - title: 'Success!', - text: 'Deal Inserted successfully in '+deatType+' Tab.', - icon: 'success', - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - buttonsStyling: false, - showCloseButton: true - }); - } -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/crm-leads.init.js b/src/main/resources/static/assets/js/pages/crm-leads.init.js deleted file mode 100644 index afc48eb..0000000 --- a/src/main/resources/static/assets/js/pages/crm-leads.init.js +++ /dev/null @@ -1,449 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: CRM-leads Js File -*/ - - -// list js -function formatDate(date) { - var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" - ]; - var d = new Date(date), - month = '' + monthNames[(d.getMonth())], - day = '' + d.getDate(), - year = d.getFullYear(); - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - return [day + " " + month, year].join(', '); -}; - -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; - for (var i = 0; i < checkboxes.length; i++) { - checkboxes[i].checked = this.checked; - if (checkboxes[i].checked) { - checkboxes[i].closest("tr").classList.add("table-active"); - } else { - checkboxes[i].closest("tr").classList.remove("table-active"); - } - } - - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; - }; -} - -var perPage = 8; -var editlist = false; - -//Table -var options = { - valueNames: [ - "id", - "name", - "company_name", - "date", - "leads_score", - "phone", - "location", - "tags", - { attr: "src", name: "image_src" } - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; - -// Init list -var leadsList = new List("leadsList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -const xhttp = new XMLHttpRequest(); -xhttp.onload = function () { - var json_records = JSON.parse(this.responseText); - Array.from(json_records).forEach(function (raw){ - var tags = raw.tags; - var tagHtml = ''; - Array.from(tags).forEach((tag, index) => { - tagHtml += ''+tag+'' - }) - - leadsList.add({ - id: '#VZ'+raw.id+"", - image_src: raw.image_src, - name: raw.name, - company_name: raw.company_name, - date: formatDate(raw.date), - leads_score: raw.leads_score, - phone: raw.phone, - location: raw.location, - tags: tagHtml, - }); - leadsList.sort('id', { order: "desc" }); - refreshCallbacks(); - }); - leadsList.remove("id", `#VZ2101`); -} -xhttp.open("GET", "assets/json/leads-list.json"); -xhttp.send(); - -// customer image -document.querySelector("#lead-image-input").addEventListener("change", function () { - var preview = document.querySelector("#lead-img"); - var file = document.querySelector("#lead-image-input").files[0]; - var reader = new FileReader(); - reader.addEventListener("load",function () { - preview.src = reader.result; - },false); - if (file) { - reader.readAsDataURL(file); - } -}); - -isCount = new DOMParser().parseFromString( - leadsList.items.slice(-1)[0]._values.id, - "text/html" -); - -var isValue = isCount.body.firstElementChild.innerHTML; - -var idField = document.getElementById("id-field"), - leadNameField = document.getElementById("leadname-field"), - leadImg = document.getElementById("lead-img"), - company_nameField = document.getElementById("company_name-field"), - dateField = document.getElementById("date-field"), - leads_scoreField = document.getElementById("leads_score-field"), - phoneField = document.getElementById("phone-field"), - locationField = document.getElementById("location-field"), - addBtn = document.getElementById("add-btn"), - editBtn = document.getElementById("edit-btn"), - removeBtns = document.getElementsByClassName("remove-item-btn"), - editBtns = document.getElementsByClassName("edit-item-btn"); -refreshCallbacks(); - -document.getElementById("showModal").addEventListener("show.bs.modal", function (e) { - if (e.relatedTarget.classList.contains("edit-item-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Edit Lead"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Update"; - } else if (e.relatedTarget.classList.contains("add-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Add Lead"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Add Lead"; - } else { - document.getElementById("exampleModalLabel").innerHTML = "List Lead"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "none"; - } -}); -ischeckboxcheck(); - -document.getElementById("showModal").addEventListener("hidden.bs.modal", function () { - clearFields(); -}); - -document.querySelector("#leadsList").addEventListener("click", function () { - ischeckboxcheck(); -}); - -var table = document.getElementById("customerTable"); -// save all tr -var tr = table.getElementsByTagName("tr"); -var trlist = table.querySelectorAll(".list tr"); - -var count = 11; -// multiple Remove CancelButton -var tagInputField = new Choices('#taginput-choices', { - removeItemButton: true, - } -); - -var tagInputFieldValue = tagInputField.getValue(true); -var tagHtmlValue = ''; -Array.from(tagInputFieldValue).forEach((tag, index) => { - tagHtmlValue += ''+tag+'' -}) - -var forms = document.querySelectorAll('.tablelist-form') -Array.prototype.slice.call(forms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - if ( - leadNameField.value !== "" && - company_nameField.value !== "" && - dateField.value !== "" && - leads_scoreField.value !== "" && - phoneField.value !== "" && - locationField.value !== "" && !editlist) { - var tagInputFieldValue = tagInputField.getValue(true); - var tagHtmlValue = ''; - Array.from(tagInputFieldValue).forEach((tag, index) => { - tagHtmlValue += '' + tag + '' - }) - leadsList.add({ - id: '#VZ'+count+"", - image_src: leadImg.src, - name: leadNameField.value, - company_name: company_nameField.value, - date: formatDate(dateField.value), - leads_score: leads_scoreField.value, - phone: phoneField.value, - location: locationField.value, - tags: tagHtmlValue, - }); - leadsList.sort('id', { order: "desc" }); - document.getElementById("close-modal").click(); - clearFields(); - refreshCallbacks(); - count++; - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Lead inserted successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - }else if( - leadNameField.value !== "" && - company_nameField.value !== "" && - dateField.value !== "" && - leads_scoreField.value !== "" && - phoneField.value !== "" && - locationField.value !== "" && editlist) { - var editValues = leadsList.get({ - id: idField.value, - }); - Array.from(editValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - var tagInputFieldValue = tagInputField.getValue(true); - var tagHtmlValue = ''; - Array.from(tagInputFieldValue).forEach((tag, index) => { - tagHtmlValue += '' + tag + '' - }) - if (selectedid == itemId) { - x.values({ - id: ''+idField.value+"", - image_src: leadImg.src, - name: leadNameField.value, - company_name: company_nameField.value, - date: formatDate(dateField.value), - leads_score: leads_scoreField.value, - phone: phoneField.value, - tags: tagHtmlValue, - location: locationField.value, - }); - } - }); - document.getElementById("close-modal").click(); - clearFields(); - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Lead updated Successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } - } - }, false) -}) - - -function ischeckboxcheck() { - Array.from(document.getElementsByName("chk_child")).forEach(function (x) { - x.addEventListener("change", function (e) { - if (x.checked == true) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - - var checkedCount = document.querySelectorAll('[name="chk_child"]:checked').length; - if (e.target.closest("tr").classList.contains("table-active")) { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } - }); - }); -} - -function refreshCallbacks() { - if(removeBtns){ - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = leadsList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - leadsList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecord-close").click(); - }); - } - }); - }); - }); - } - - if(editBtns){ - Array.from(editBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = leadsList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - var tagBadge = new DOMParser().parseFromString(x._values.tags, "text/html").body.querySelectorAll("span.badge"); - if (selectedid == itemId) { - editlist = true; - idField.value = selectedid; - leadImg.src = x._values.image_src; - leadNameField.value = x._values.name; - company_nameField.value = x._values.company_name; - dateField.value = x._values.date; - leads_scoreField.value = x._values.leads_score; - phoneField.value = x._values.phone; - if(tagBadge){ - Array.from(tagBadge).forEach((item) => { - tagInputField.setChoiceByValue(item.innerHTML); - }) - } - locationField.value = x._values.location; - flatpickr("#date-field", { - dateFormat: "d M, Y", - defaultDate: x._values.date, - }); - } - }); - }); - }); - } -} - -function clearFields() { - leadImg.src = "assets/images/users/user-dummy-img.jpg"; - leadNameField.value = ""; - company_nameField.value = ""; - dateField.value = ""; - leads_scoreField.value = ""; - phoneField.value = ""; - locationField.value = ""; - tagInputField.removeActiveItems(); - tagInputField.setChoiceByValue("0"); -} - -function deleteMultiple(){ - ids_array = []; - var items = document.getElementsByName('chk_child'); - for (i = 0; i < items.length; i++) { - if (items[i].checked == true) { - var trNode = items[i].parentNode.parentNode.parentNode; - var id = trNode.querySelector("td a").innerHTML; - ids_array.push(id); - } - } - if (typeof ids_array !== 'undefined' && ids_array.length > 0) { - Swal.fire({ - title: "Are you sure?", - text: "You won't be able to revert this!", - icon: "warning", - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - confirmButtonText: "Yes, delete it!", - buttonsStyling: false, - showCloseButton: true - }).then(function (result) { - if (result.value) { - for (i = 0; i < ids_array.length; i++) { - leadsList.remove("id", `${ids_array[i]}`); - } - document.getElementById("remove-actions").style.display = 'none'; - document.getElementById("checkAll").checked = false; - Swal.fire({ - title: 'Deleted!', - text: 'Your data has been deleted.', - icon: 'success', - confirmButtonClass: 'btn btn-info w-xs mt-2', - buttonsStyling: false - }); - } - }); - } else { - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -} - -document.querySelector(".pagination-next").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; -}); - -document.querySelector(".pagination-prev").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/crypto-buy-sell.init.js b/src/main/resources/static/assets/js/pages/crypto-buy-sell.init.js deleted file mode 100644 index e84dbcd..0000000 --- a/src/main/resources/static/assets/js/pages/crypto-buy-sell.init.js +++ /dev/null @@ -1,421 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Crypto-buy-sell Js File -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors){ - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue( - newValue - ); - if (color) return color; - else return newValue; - } else { - var val = value.split(","); - if (val.length == 2) { - var rgbaColor = getComputedStyle( - document.documentElement - ).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - }else{ - console.warn('data-colors Attribute not found on:',chartId); - } - } -} - -// Market Chart Candalstick -var MarketchartColors = getChartColorsArray("Market_chart"); -if(MarketchartColors){ - var options = { - series: [{ - data: [{ - x: new Date(1538778600000), - y: [6629.81, 6650.5, 6623.04, 6633.33] - }, - { - x: new Date(1538780400000), - y: [6632.01, 6643.59, 6620, 6630.11] - }, - { - x: new Date(1538782200000), - y: [6630.71, 6648.95, 6623.34, 6635.65] - }, - { - x: new Date(1538784000000), - y: [6635.65, 6651, 6629.67, 6638.24] - }, - { - x: new Date(1538785800000), - y: [6638.24, 6640, 6620, 6624.47] - }, - { - x: new Date(1538787600000), - y: [6624.53, 6636.03, 6621.68, 6624.31] - }, - { - x: new Date(1538789400000), - y: [6624.61, 6632.2, 6617, 6626.02] - }, - { - x: new Date(1538791200000), - y: [6627, 6627.62, 6584.22, 6603.02] - }, - { - x: new Date(1538793000000), - y: [6605, 6608.03, 6598.95, 6604.01] - }, - { - x: new Date(1538794800000), - y: [6604.5, 6614.4, 6602.26, 6608.02] - }, - { - x: new Date(1538796600000), - y: [6608.02, 6610.68, 6601.99, 6608.91] - }, - { - x: new Date(1538798400000), - y: [6608.91, 6618.99, 6608.01, 6612] - }, - { - x: new Date(1538800200000), - y: [6612, 6615.13, 6605.09, 6612] - }, - { - x: new Date(1538802000000), - y: [6612, 6624.12, 6608.43, 6622.95] - }, - { - x: new Date(1538803800000), - y: [6623.91, 6623.91, 6615, 6615.67] - }, - { - x: new Date(1538805600000), - y: [6618.69, 6618.74, 6610, 6610.4] - }, - { - x: new Date(1538807400000), - y: [6611, 6622.78, 6610.4, 6614.9] - }, - { - x: new Date(1538809200000), - y: [6614.9, 6626.2, 6613.33, 6623.45] - }, - { - x: new Date(1538811000000), - y: [6623.48, 6627, 6618.38, 6620.35] - }, - { - x: new Date(1538812800000), - y: [6619.43, 6620.35, 6610.05, 6615.53] - }, - { - x: new Date(1538814600000), - y: [6615.53, 6617.93, 6610, 6615.19] - }, - { - x: new Date(1538816400000), - y: [6615.19, 6621.6, 6608.2, 6620] - }, - { - x: new Date(1538818200000), - y: [6619.54, 6625.17, 6614.15, 6620] - }, - { - x: new Date(1538820000000), - y: [6620.33, 6634.15, 6617.24, 6624.61] - }, - { - x: new Date(1538821800000), - y: [6625.95, 6626, 6611.66, 6617.58] - }, - { - x: new Date(1538823600000), - y: [6619, 6625.97, 6595.27, 6598.86] - }, - { - x: new Date(1538825400000), - y: [6598.86, 6598.88, 6570, 6587.16] - }, - { - x: new Date(1538827200000), - y: [6588.86, 6600, 6580, 6593.4] - }, - { - x: new Date(1538829000000), - y: [6593.99, 6598.89, 6585, 6587.81] - }, - { - x: new Date(1538830800000), - y: [6587.81, 6592.73, 6567.14, 6578] - }, - { - x: new Date(1538832600000), - y: [6578.35, 6581.72, 6567.39, 6579] - }, - { - x: new Date(1538834400000), - y: [6579.38, 6580.92, 6566.77, 6575.96] - }, - { - x: new Date(1538836200000), - y: [6575.96, 6589, 6571.77, 6588.92] - }, - { - x: new Date(1538838000000), - y: [6588.92, 6594, 6577.55, 6589.22] - }, - { - x: new Date(1538839800000), - y: [6589.3, 6598.89, 6589.1, 6596.08] - }, - { - x: new Date(1538841600000), - y: [6597.5, 6600, 6588.39, 6596.25] - }, - { - x: new Date(1538843400000), - y: [6598.03, 6600, 6588.73, 6595.97] - }, - { - x: new Date(1538845200000), - y: [6595.97, 6602.01, 6588.17, 6602] - }, - { - x: new Date(1538847000000), - y: [6602, 6607, 6596.51, 6599.95] - }, - { - x: new Date(1538848800000), - y: [6600.63, 6601.21, 6590.39, 6591.02] - }, - { - x: new Date(1538850600000), - y: [6591.02, 6603.08, 6591, 6591] - }, - { - x: new Date(1538852400000), - y: [6591, 6601.32, 6585, 6592] - }, - { - x: new Date(1538854200000), - y: [6593.13, 6596.01, 6590, 6593.34] - }, - { - x: new Date(1538856000000), - y: [6593.34, 6604.76, 6582.63, 6593.86] - }, - { - x: new Date(1538857800000), - y: [6593.86, 6604.28, 6586.57, 6600.01] - }, - { - x: new Date(1538859600000), - y: [6601.81, 6603.21, 6592.78, 6596.25] - }, - { - x: new Date(1538861400000), - y: [6596.25, 6604.2, 6590, 6602.99] - }, - { - x: new Date(1538863200000), - y: [6602.99, 6606, 6584.99, 6587.81] - }, - { - x: new Date(1538865000000), - y: [6587.81, 6595, 6583.27, 6591.96] - }, - { - x: new Date(1538866800000), - y: [6591.97, 6596.07, 6585, 6588.39] - }, - { - x: new Date(1538868600000), - y: [6587.6, 6598.21, 6587.6, 6594.27] - }, - { - x: new Date(1538870400000), - y: [6596.44, 6601, 6590, 6596.55] - }, - { - x: new Date(1538872200000), - y: [6598.91, 6605, 6596.61, 6600.02] - }, - { - x: new Date(1538874000000), - y: [6600.55, 6605, 6589.14, 6593.01] - }, - { - x: new Date(1538875800000), - y: [6593.15, 6605, 6592, 6603.06] - }, - { - x: new Date(1538877600000), - y: [6603.07, 6604.5, 6599.09, 6603.89] - }, - { - x: new Date(1538879400000), - y: [6604.44, 6604.44, 6600, 6603.5] - }, - { - x: new Date(1538881200000), - y: [6603.5, 6603.99, 6597.5, 6603.86] - }, - { - x: new Date(1538883000000), - y: [6603.85, 6605, 6600, 6604.07] - }, - { - x: new Date(1538884800000), - y: [6604.98, 6606, 6604.07, 6606] - }, - ] - }], - chart: { - type: 'candlestick', - height: 360, - toolbar: { - show: false - } - }, - plotOptions: { - candlestick: { - colors: { - upward: MarketchartColors[0], - downward: MarketchartColors[1] - } - } - }, - xaxis: { - type: 'datetime' - }, - yaxis: { - tooltip: { - enabled: true - }, - labels: { - formatter: function (value) { - return "$" + value; - } - } - }, - tooltip: { - shared: true, - y: [{ - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0); - } - return y; - - } - }, { - formatter: function (y) { - if (typeof y !== "undefined") { - return "$" + y.toFixed(2) + "k"; - } - return y; - - } - }, { - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0) + " Sales"; - } - return y; - - } - }] - } - }; - - var chart = new ApexCharts(document.querySelector("#Market_chart"), options); - chart.render(); -} - -// List Js - -var perPage = 8; - -//Table -var options = { - valueNames: [ - "id", - "currency_name", - "pairs", - "current_value", - "details", - "valume", - "high", - "low", - "market_cap", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; -// Init list -var marketList = new List("marketList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -isCount = new DOMParser().parseFromString( - marketList.items.slice(-1)[0]._values.id, - "text/html" -); - -if(document.querySelector(".pagination-next")) - document.querySelector(".pagination-next").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; - }); - -if(document.querySelector(".pagination-prev")) - document.querySelector(".pagination-prev").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; - }); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/crypto-kyc.init.js b/src/main/resources/static/assets/js/pages/crypto-kyc.init.js deleted file mode 100644 index bb289f9..0000000 --- a/src/main/resources/static/assets/js/pages/crypto-kyc.init.js +++ /dev/null @@ -1,74 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Crypto-kyc init Js File -*/ - - -// Checkout nav tab -if(document.querySelectorAll(".checkout-tab")) -Array.from(document.querySelectorAll(".checkout-tab")).forEach(function (form) { - - // next tab - if(form.querySelectorAll(".nexttab")) - form.querySelectorAll(".nexttab").forEach(function (nextButton) { - var tabEl = form.querySelectorAll('button[data-bs-toggle="pill"]'); - Array.from(tabEl).forEach(function (item) { - item.addEventListener('show.bs.tab', function (event) { - event.target.classList.add('done'); - }); - }); - nextButton.addEventListener("click", function () { - var nextTab = nextButton.getAttribute('data-nexttab'); - document.getElementById(nextTab).click(); - }); - }); - - //Pervies tab - if(form.querySelectorAll(".previestab")) - Array.from(form.querySelectorAll(".previestab")).forEach(function (prevButton) { - - prevButton.addEventListener("click", function () { - var prevTab = prevButton.getAttribute('data-previous'); - var totalDone = prevButton.closest("form") - for (var i = totalDone - 1; i < totalDone; i++) { - (prevButton.closest("form").querySelectorAll(".custom-nav .done")[i]) ? prevButton.closest("form").querySelectorAll(".custom-nav .done")[i].classList.remove('done') : ''; - } - document.getElementById(prevTab).click(); - }); - }); - - // Step number click - var tabButtons = form.querySelectorAll('button[data-bs-toggle="pill"]'); - if (tabButtons) - Array.from(tabButtons).forEach(function (button, i) { - button.setAttribute("data-position", i); - button.addEventListener("click", function () { - (form.querySelectorAll(".custom-nav .done").length > 0) ? - Array.from(form.querySelectorAll(".custom-nav .done")).forEach(function (doneTab) { - doneTab.classList.remove('done'); - }) - : ''; - for (var j = 0; j <= i; j++) { - tabButtons[j].classList.contains('active') ? tabButtons[j].classList.remove('done') : tabButtons[j].classList.add('done'); - } - }); - }); -}); - -// Dropzone -var dropzonePreviewNode = document.querySelector("#dropzone-preview-list"); -if(dropzonePreviewNode){ - dropzonePreviewNode.id = ""; - var previewTemplate = dropzonePreviewNode.parentNode.innerHTML; - dropzonePreviewNode.parentNode.removeChild(dropzonePreviewNode); -} -if(document.querySelector('.dropzone')) - var dropzone = new Dropzone(".dropzone", { - url: 'https://httpbin.org/post', - method: "post", - previewTemplate: previewTemplate, - previewsContainer: "#dropzone-preview", - }); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/crypto-orders.init.js b/src/main/resources/static/assets/js/pages/crypto-orders.init.js deleted file mode 100644 index 008c36f..0000000 --- a/src/main/resources/static/assets/js/pages/crypto-orders.init.js +++ /dev/null @@ -1,136 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: crypto-orders init init js -*/ - -// List Js -var perPage = 10; - -//Table -var options = { - valueNames: [ - "order_date", - "currency_name", - "type", - "quantity_value", - "order_value", - "avg_price", - "price", - "status", - { name: 'time', attr: 'data-timestamp' }, - { name: 'or_val', attr: 'data-orderval' }, - { name: 'sort-avg_price', attr: 'data-av-price' }, - { name: 'sort-price', attr: 'data-price' }, - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; - -// Init list -var ContactList = document.getElementById('contactList'); -if (ContactList) { - var contactList = new List("contactList", options).on("updated", function(list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } - }); - - isCount = new DOMParser().parseFromString( - contactList.items.slice(-1)[0]._values.id, - "text/html" - ); -} - -function filterData(){ - var isstatus = document.getElementById("idStatus").value; - var isType = document.getElementById("idType").value; - var pickerVal = document.getElementById("range-datepicker").value; - - var date1 = pickerVal.split(" to ")[0]; - var date2 = pickerVal.split(" to ")[1]; - - contactList.filter(function (data) { - matchData = new DOMParser().parseFromString(data.values().status, "text/html"); - var status = matchData.body.firstElementChild.innerHTML; - var statusFilter = false; - var dateFilter = false; - var typeFilter = false; - - if (status == "all" || isstatus == "all") { - statusFilter = true; - } else { - statusFilter = status == isstatus; - } - - if (data.values().type == "all" || isType == "all") { - typeFilter = true; - } else { - typeFilter = data.values().type == isType; - } - - if ( - new Date(data.values().order_date.slice(0, 12)) >= new Date(date1) && - new Date(data.values().order_date.slice(0, 12)) <= new Date(date2) - ) { - dateFilter = true; - } else { - dateFilter = false; - } - - if(statusFilter && typeFilter && dateFilter){ - return statusFilter && typeFilter && dateFilter - } else if (statusFilter && typeFilter && pickerVal == "") { - return statusFilter && typeFilter; - } else if (typeFilter && dateFilter && pickerVal == "") { - return typeFilter && dateFilter; - } - }); - - contactList.update(); -} - -var paginationNext = document.querySelector(".pagination-next"); -if (paginationNext) { - document.querySelector(".pagination-next").addEventListener("click", function() { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; - }); -} -var paginationPrev = document.querySelector(".pagination-prev"); -if (paginationPrev) { - document.querySelector(".pagination-prev").addEventListener("click", function() { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/crypto-transactions.init.js b/src/main/resources/static/assets/js/pages/crypto-transactions.init.js deleted file mode 100644 index a44b5f3..0000000 --- a/src/main/resources/static/assets/js/pages/crypto-transactions.init.js +++ /dev/null @@ -1,90 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Crypto transactions init Js File -*/ - - -// list js -var perPage = 8; - -//Table -var options = { - valueNames: [ - "id", - "name", - "currency_name", - "form_name", - "date", - "details", - "transaction_id", - "type", - "amount", - "status", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; - -// Init list -var contactList = new List("contactList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -isCount = new DOMParser().parseFromString( - contactList.items.slice(-1)[0]._values.id, - "text/html" -); - -if(document.querySelector(".pagination-next")) - document.querySelector(".pagination-next").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; - }); - -if(document.querySelector(".pagination-prev")) - document.querySelector(".pagination-prev").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; - }); - -//Default Swiper -var swiper = new Swiper(".default-swiper", { - loop: true, - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/crypto-wallet.init.js b/src/main/resources/static/assets/js/pages/crypto-wallet.init.js deleted file mode 100644 index ef03979..0000000 --- a/src/main/resources/static/assets/js/pages/crypto-wallet.init.js +++ /dev/null @@ -1,864 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Crypto-wallet-init init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue( - newValue - ); - if (color) return color; - else return newValue; - } else { - var val = value.split(","); - if (val.length == 2) { - var rgbaColor = getComputedStyle( - document.documentElement - ).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } - } -} - -// Area Chart - Datetime X - Axis -var areachartDatetimeColors = getChartColorsArray("area_chart_datetime"); -if (areachartDatetimeColors) { - var timelinechart = { - series: [{ - name: "Balance", - data: [ - [1327359600000, 30.95], - [1327446000000, 31.34], - [1327532400000, 31.18], - [1327618800000, 31.05], - [1327878000000, 31.0], - [1327964400000, 30.95], - [1328050800000, 31.24], - [1328137200000, 31.29], - [1328223600000, 31.85], - [1328482800000, 31.86], - [1328569200000, 32.28], - [1328655600000, 32.1], - [1328742000000, 32.65], - [1328828400000, 32.21], - [1329087600000, 32.35], - [1329174000000, 32.44], - [1329260400000, 32.46], - [1329346800000, 32.86], - [1329433200000, 32.75], - [1329778800000, 32.54], - [1329865200000, 32.33], - [1329951600000, 32.97], - [1330038000000, 33.41], - [1330297200000, 33.27], - [1330383600000, 33.27], - [1330470000000, 32.89], - [1330556400000, 33.1], - [1330642800000, 33.73], - [1330902000000, 33.22], - [1330988400000, 31.99], - [1331074800000, 32.41], - [1331161200000, 33.05], - [1331247600000, 33.64], - [1331506800000, 33.56], - [1331593200000, 34.22], - [1331679600000, 33.77], - [1331766000000, 34.17], - [1331852400000, 33.82], - [1332111600000, 34.51], - [1332198000000, 33.16], - [1332284400000, 33.56], - [1332370800000, 33.71], - [1332457200000, 33.81], - [1332712800000, 34.4], - [1332799200000, 34.63], - [1332885600000, 34.46], - [1332972000000, 34.48], - [1333058400000, 34.31], - [1333317600000, 34.7], - [1333404000000, 34.31], - [1333490400000, 33.46], - [1333576800000, 33.59], - [1333922400000, 33.22], - [1334008800000, 32.61], - [1334095200000, 33.01], - [1334181600000, 33.55], - [1334268000000, 33.18], - [1334527200000, 32.84], - [1334613600000, 33.84], - [1334700000000, 33.39], - [1334786400000, 32.91], - [1334872800000, 33.06], - [1335132000000, 32.62], - [1335218400000, 32.4], - [1335304800000, 33.13], - [1335391200000, 33.26], - [1335477600000, 33.58], - [1335736800000, 33.55], - [1335823200000, 33.77], - [1335909600000, 33.76], - [1335996000000, 33.32], - [1336082400000, 32.61], - [1336341600000, 32.52], - [1336428000000, 32.67], - [1336514400000, 32.52], - [1336600800000, 31.92], - [1336687200000, 32.2], - [1336946400000, 32.23], - [1337032800000, 32.33], - [1337119200000, 32.36], - [1337205600000, 32.01], - [1337292000000, 31.31], - [1337551200000, 32.01], - [1337637600000, 32.01], - [1337724000000, 32.18], - [1337810400000, 31.54], - [1337896800000, 31.6], - [1338242400000, 32.05], - [1338328800000, 31.29], - [1338415200000, 31.05], - [1338501600000, 29.82], - [1338760800000, 30.31], - [1338847200000, 30.7], - [1338933600000, 31.69], - [1339020000000, 31.32], - [1339106400000, 31.65], - [1339365600000, 31.13], - [1339452000000, 31.77], - [1339538400000, 31.79], - [1339624800000, 31.67], - [1339711200000, 32.39], - [1339970400000, 32.63], - [1340056800000, 32.89], - [1340143200000, 31.99], - [1340229600000, 31.23], - [1340316000000, 31.57], - [1340575200000, 30.84], - [1340661600000, 31.07], - [1340748000000, 31.41], - [1340834400000, 31.17], - [1340920800000, 32.37], - [1341180000000, 32.19], - [1341266400000, 32.51], - [1341439200000, 32.53], - [1341525600000, 31.37], - [1341784800000, 30.43], - [1341871200000, 30.44], - [1341957600000, 30.2], - [1342044000000, 30.14], - [1342130400000, 30.65], - [1342389600000, 30.4], - [1342476000000, 30.65], - [1342562400000, 31.43], - [1342648800000, 31.89], - [1342735200000, 31.38], - [1342994400000, 30.64], - [1343080800000, 30.02], - [1343167200000, 30.33], - [1343253600000, 30.95], - [1343340000000, 31.89], - [1343599200000, 31.01], - [1343685600000, 30.88], - [1343772000000, 30.69], - [1343858400000, 30.58], - [1343944800000, 32.02], - [1344204000000, 32.14], - [1344290400000, 32.37], - [1344376800000, 32.51], - [1344463200000, 32.65], - [1344549600000, 32.64], - [1344808800000, 32.27], - [1344895200000, 32.1], - [1344981600000, 32.91], - [1345068000000, 33.65], - [1345154400000, 33.8], - [1345413600000, 33.92], - [1345500000000, 33.75], - [1345586400000, 33.84], - [1345672800000, 33.5], - [1345759200000, 32.26], - [1346018400000, 32.32], - [1346104800000, 32.06], - [1346191200000, 31.96], - [1346277600000, 31.46], - [1346364000000, 31.27], - [1346709600000, 31.43], - [1346796000000, 32.26], - [1346882400000, 32.79], - [1346968800000, 32.46], - [1347228000000, 32.13], - [1347314400000, 32.43], - [1347400800000, 32.42], - [1347487200000, 32.81], - [1347573600000, 33.34], - [1347832800000, 33.41], - [1347919200000, 32.57], - [1348005600000, 33.12], - [1348092000000, 34.53], - [1348178400000, 33.83], - [1348437600000, 33.41], - [1348524000000, 32.9], - [1348610400000, 32.53], - [1348696800000, 32.8], - [1348783200000, 32.44], - [1349042400000, 32.62], - [1349128800000, 32.57], - [1349215200000, 32.6], - [1349301600000, 32.68], - [1349388000000, 32.47], - [1349647200000, 32.23], - [1349733600000, 31.68], - [1349820000000, 31.51], - [1349906400000, 31.78], - [1349992800000, 31.94], - [1350252000000, 32.33], - [1350338400000, 33.24], - [1350424800000, 33.44], - [1350511200000, 33.48], - [1350597600000, 33.24], - [1350856800000, 33.49], - [1350943200000, 33.31], - [1351029600000, 33.36], - [1351116000000, 33.4], - [1351202400000, 34.01], - [1351638000000, 34.02], - [1351724400000, 34.36], - [1351810800000, 34.39], - [1352070000000, 34.24], - [1352156400000, 34.39], - [1352242800000, 33.47], - [1352329200000, 32.98], - [1352415600000, 32.9], - [1352674800000, 32.7], - [1352761200000, 32.54], - [1352847600000, 32.23], - [1352934000000, 32.64], - [1353020400000, 32.65], - [1353279600000, 32.92], - [1353366000000, 32.64], - [1353452400000, 32.84], - [1353625200000, 33.4], - [1353884400000, 33.3], - [1353970800000, 33.18], - [1354057200000, 33.88], - [1354143600000, 34.09], - [1354230000000, 34.61], - [1354489200000, 34.7], - [1354575600000, 35.3], - [1354662000000, 35.4], - [1354748400000, 35.14], - [1354834800000, 35.48], - [1355094000000, 35.75], - [1355180400000, 35.54], - [1355266800000, 35.96], - [1355353200000, 35.53], - [1355439600000, 37.56], - [1355698800000, 37.42], - [1355785200000, 37.49], - [1355871600000, 38.09], - [1355958000000, 37.87], - [1356044400000, 37.71], - [1356303600000, 37.53], - [1356476400000, 37.55], - [1356562800000, 37.3], - [1356649200000, 36.9], - [1356908400000, 37.68], - [1357081200000, 38.34], - [1357167600000, 37.75], - [1357254000000, 38.13], - [1357513200000, 37.94], - [1357599600000, 38.14], - [1357686000000, 38.66], - [1357772400000, 38.62], - [1357858800000, 38.09], - [1358118000000, 38.16], - [1358204400000, 38.15], - [1358290800000, 37.88], - [1358377200000, 37.73], - [1358463600000, 37.98], - [1358809200000, 37.95], - [1358895600000, 38.25], - [1358982000000, 38.1], - [1359068400000, 38.32], - [1359327600000, 38.24], - [1359414000000, 38.52], - [1359500400000, 37.94], - [1359586800000, 37.83], - [1359673200000, 38.34], - [1359932400000, 38.1], - [1360018800000, 38.51], - [1360105200000, 38.4], - [1360191600000, 38.07], - [1360278000000, 39.12], - [1360537200000, 38.64], - [1360623600000, 38.89], - [1360710000000, 38.81], - [1360796400000, 38.61], - [1360882800000, 38.63], - [1361228400000, 38.99], - [1361314800000, 38.77], - [1361401200000, 38.34], - [1361487600000, 38.55], - [1361746800000, 38.11], - [1361833200000, 38.59], - [1361919600000, 39.6], - ], - }, ], - chart: { - id: "area-datetime", - type: "area", - height: 320, - zoom: { - autoScaleYaxis: true, - }, - toolbar: { - show: false, - }, - }, - yaxis: { - title: { - text: "$ (thousands)", - }, - }, - colors: areachartDatetimeColors, - dataLabels: { - enabled: false, - }, - markers: { - size: 0, - style: "hollow", - }, - xaxis: { - type: "datetime", - min: new Date("01 Mar 2012").getTime(), - tickAmount: 6, - }, - tooltip: { - x: { - format: "dd MMM yyyy", - }, - y: { - formatter: function (y) { - if (typeof y !== "undefined") { - return "$" + y.toFixed(2) + "k"; - } - return y; - }, - }, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [20, 100, 100, 100], - }, - }, - }; - - var timelinechart = new ApexCharts( - document.querySelector("#area_chart_datetime"), - timelinechart - ); - timelinechart.render(); -} - -// Datetime chart button -var timLine = document.querySelectorAll('.timeline') -if (timLine) { - var resetCssClasses = function (activeEl) { - var els = document.querySelectorAll(".timeline"); - Array.prototype.forEach.call(els, function (el) { - el.classList.remove("active"); - }); - - activeEl.target.classList.add("active"); - }; - var OneMonth = document.querySelector("#one_month"); - if (OneMonth) { - document.querySelector("#one_month").addEventListener("click", function (e) { - resetCssClasses(e); - - timelinechart.zoomX( - new Date("28 Jan 2013").getTime(), - new Date("27 Feb 2013").getTime() - ); - }); - } - var SixMonth = document.querySelector("#six_months"); - if (SixMonth) { - document.querySelector("#six_months").addEventListener("click", function (e) { - resetCssClasses(e); - - timelinechart.zoomX( - new Date("27 Sep 2012").getTime(), - new Date("27 Feb 2013").getTime() - ); - }); - } - var OneYear = document.querySelector("#one_year"); - if (OneYear) { - document.querySelector("#one_year").addEventListener("click", function (e) { - resetCssClasses(e); - timelinechart.zoomX( - new Date("27 Feb 2012").getTime(), - new Date("27 Feb 2013").getTime() - ); - }); - } - var All = document.querySelector("#all"); - if (All) { - document.querySelector("#all").addEventListener("click", function (e) { - resetCssClasses(e); - - timelinechart.zoomX( - new Date("23 Jan 2012").getTime(), - new Date("27 Feb 2013").getTime() - ); - }); - } -} - -// Bitcoin -var areachartbitcoinColors = getChartColorsArray("bitcoin_sparkline_charts"); -if (areachartbitcoinColors) { - var options = { - series: [{ - name: "Bitcoin", - data: [85, 68, 35, 90, 8, 11, 26, 54], - }, ], - chart: { - width: "100%", - height: 50, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartbitcoinColors, - }; - var chart = new ApexCharts( - document.querySelector("#bitcoin_sparkline_charts"), - options - ); - chart.render(); -} - -// Litecoin -var areachartlitecoinColors = getChartColorsArray("litecoin_sparkline_charts"); -if (areachartlitecoinColors) { - var options = { - series: [{ - name: "Litecoin", - data: [25, 50, 41, 87, 12, 36, 9, 54], - }, ], - chart: { - width: "100%", - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartlitecoinColors, - }; - var chart = new ApexCharts( - document.querySelector("#litecoin_sparkline_charts"), - options - ); - chart.render(); -} - -// Eathereum -var areacharteathereumColors = getChartColorsArray("eathereum_sparkline_charts"); -if (areacharteathereumColors) { - var options = { - series: [{ - name: "Eathereum", - data: [36, 21, 65, 22, 35, 50, 29, 44], - }, ], - chart: { - width: "100%", - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areacharteathereumColors, - }; - var chart = new ApexCharts( - document.querySelector("#eathereum_sparkline_charts"), - options - ); - chart.render(); -} - -// Monero -var areachartbinanceColors = getChartColorsArray("binance_sparkline_charts"); -if (areachartbinanceColors) { - var options = { - series: [{ - name: "Monero", - data: [30, 58, 29, 89, 12, 36, 9, 54], - }, ], - chart: { - width: "100%", - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartbinanceColors, - }; - var chart = new ApexCharts( - document.querySelector("#binance_sparkline_charts"), - options - ); - chart.render(); -} - -// Dash -var areachartdashColors = getChartColorsArray("dash_sparkline_charts"); -if (areachartdashColors) { - var options = { - series: [{ - name: "Dash", - data: [24, 68, 39, 86, 29, 42, 11, 58], - }, ], - chart: { - width: "100%", - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartdashColors, - }; - var chart = new ApexCharts( - document.querySelector("#dash_sparkline_charts"), - options - ); - chart.render(); -} - -// Tether -var areacharttetherColors = getChartColorsArray("tether_sparkline_charts"); -if (areacharttetherColors) { - var options = { - series: [{ - name: "Dash", - data: [13, 76, 12, 85, 25, 60, 9, 54], - }, ], - chart: { - width: "100%", - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areacharttetherColors, - }; - var chart = new ApexCharts( - document.querySelector("#tether_sparkline_charts"), - options - ); - chart.render(); -} - -// Neo -var areachartneoColors = getChartColorsArray("neo_sparkline_charts"); -if (areachartneoColors) { - var options = { - series: [{ - name: "Neo", - data: [9, 66, 41, 89, 12, 36, 25, 54], - }, ], - chart: { - width: "100%", - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartneoColors, - }; - var chart = new ApexCharts( - document.querySelector("#neo_sparkline_charts"), - options - ); - chart.render(); -} - -// Swiper Slider -var swiper = new Swiper(".cryptoSlider", { - slidesPerView: 1, - spaceBetween: 24, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, - breakpoints: { - 640: { - slidesPerView: 2, - }, - 1024: { - slidesPerView: 3, - }, - 1600: { - slidesPerView: 4, - }, - }, -}); - -// List Js -var perPage = 6; - -//Table -var options = { - valueNames: [ - "id", - "currency_name", - "quantity_value", - "avg_price", - "current_value", - "returns", - "returns_per", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2, - }), - ], -}; - -// Init list -var MarketList = document.getElementById('marketList'); -if (MarketList) { - var marketList = new List("marketList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - document.querySelector(".pagination-prev.disabled") ? - document.querySelector(".pagination-prev.disabled").classList.remove("disabled") : ""; - document.querySelector(".pagination-next.disabled") ? - document.querySelector(".pagination-next.disabled").classList.remove("disabled") : ""; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } - }); - - isCount = new DOMParser().parseFromString( - marketList.items.slice(-1)[0]._values.id, - "text/html" - ); -} - -var paginationNext = document.querySelector(".pagination-next"); -if (paginationNext) { - document.querySelector(".pagination-next").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click() : - "" : - ""; - }); -} - -var paginationPrev = document.querySelector(".pagination-prev"); -if (paginationPrev) { - document.querySelector(".pagination-prev").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click() : - "" : - ""; - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/dashboard-analytics.init.js b/src/main/resources/static/assets/js/pages/dashboard-analytics.init.js deleted file mode 100644 index de4f6aa..0000000 --- a/src/main/resources/static/assets/js/pages/dashboard-analytics.init.js +++ /dev/null @@ -1,443 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Analytics sales init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } else { - console.warn('data-colors atributes not found on', chartId); - } - } -} - -// world map with line & markers -var vectorMapWorldLineColors = getChartColorsArray("users-by-country"); -if (vectorMapWorldLineColors) { - var worldlinemap = new jsVectorMap({ - map: "world_merc", - selector: "#users-by-country", - zoomOnScroll: false, - zoomButtons: false, - markers: [{ - name: "Greenland", - coords: [72, -42] - }, - { - name: "Canada", - coords: [56.1304, -106.3468] - }, - { - name: "Brazil", - coords: [-14.2350, -51.9253] - }, - { - name: "Egypt", - coords: [26.8206, 30.8025] - }, - { - name: "Russia", - coords: [61, 105] - }, - { - name: "China", - coords: [35.8617, 104.1954] - }, - { - name: "United States", - coords: [37.0902, -95.7129] - }, - { - name: "Norway", - coords: [60.472024, 8.468946] - }, - { - name: "Ukraine", - coords: [48.379433, 31.16558] - }, - ], - lines: [{ - from: "Canada", - to: "Egypt" - }, - { - from: "Russia", - to: "Egypt" - }, - { - from: "Greenland", - to: "Egypt" - }, - { - from: "Brazil", - to: "Egypt" - }, - { - from: "United States", - to: "Egypt" - }, - { - from: "China", - to: "Egypt" - }, - { - from: "Norway", - to: "Egypt" - }, - { - from: "Ukraine", - to: "Egypt" - }, - ], - regionStyle: { - initial: { - stroke: "#9599ad", - strokeWidth: 0.25, - fill: vectorMapWorldLineColors, - fillOpacity: 1, - }, - }, - lineStyle: { - animation: true, - strokeDasharray: "6 3 6", - }, - }) -} - -// Countries charts -var barchartCountriesColors = getChartColorsArray("countries_charts"); -if (barchartCountriesColors) { - var options = { - series: [{ - data: [1010, 1640, 490, 1255, 1050, 689, 800, 420, 1085, 589], - name: 'Sessions', - }], - chart: { - type: 'bar', - height: 436, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - borderRadius: 4, - horizontal: true, - distributed: true, - dataLabels: { - position: 'top', - }, - } - }, - colors: barchartCountriesColors, - dataLabels: { - enabled: true, - offsetX: 32, - style: { - fontSize: '12px', - fontWeight: 400, - colors: ['#adb5bd'] - } - }, - - legend: { - show: false, - }, - grid: { - show: false, - }, - xaxis: { - categories: ['India', 'United States', 'China', 'Indonesia', 'Russia', 'Bangladesh', 'Canada', 'Brazil', 'Vietnam', 'UK'], - }, - }; - var chart = new ApexCharts(document.querySelector("#countries_charts"), options); - chart.render(); -} - -// Heatmap Charts Generatedata -function generateData(count, yrange) { - var i = 0; - var series = []; - while (i < count) { - var x = (i + 1).toString() + "h"; - var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; - - series.push({ - x: x, - y: y - }); - i++; - } - return series; -} - -// Basic Heatmap Charts -var chartHeatMapBasicColors = getChartColorsArray("audiences-sessions-country-charts"); -if (chartHeatMapBasicColors) { - var options = { - series: [{ - name: 'Sat', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Fri', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Thu', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Wed', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Tue', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Mon', - data: generateData(18, { - min: 0, - max: 90 - }) - }, - { - name: 'Sun', - data: generateData(18, { - min: 0, - max: 90 - }) - } - ], - chart: { - height: 400, - type: 'heatmap', - offsetX: 0, - offsetY: -8, - toolbar: { - show: false - } - }, - plotOptions: { - heatmap: { - colorScale: { - ranges: [{ - from: 0, - to: 50, - color: chartHeatMapBasicColors[0] - }, - { - from: 51, - to: 100, - color: chartHeatMapBasicColors[1] - }, - ], - }, - - } - }, - dataLabels: { - enabled: false - }, - legend: { - show: true, - horizontalAlign: 'center', - offsetX: 0, - offsetY: 20, - markers: { - width: 20, - height: 6, - radius: 2, - }, - itemMargin: { - horizontal: 12, - vertical: 0 - }, - }, - colors: chartHeatMapBasicColors, - tooltip: { - y: [{ - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0) + "k"; - } - return y; - } - }] - } - }; - var chart = new ApexCharts(document.querySelector("#audiences-sessions-country-charts"), options); - chart.render(); -} - -// Audiences metrics column charts -var chartAudienceColumnChartsColors = getChartColorsArray("audiences_metrics_charts"); -if (chartAudienceColumnChartsColors) { - var columnoptions = { - series: [{ - name: 'Last Year', - data: [25.3, 12.5, 20.2, 18.5, 40.4, 25.4, 15.8, 22.3, 19.2, 25.3, 12.5, 20.2] - }, { - name: 'Current Year', - data: [36.2, 22.4, 38.2, 30.5, 26.4, 30.4, 20.2, 29.6, 10.9, 36.2, 22.4, 38.2] - }], - chart: { - type: 'bar', - height: 309, - stacked: true, - toolbar: { - show: false, - } - }, - plotOptions: { - bar: { - horizontal: false, - columnWidth: '20%', - borderRadius: 6, - }, - }, - dataLabels: { - enabled: false, - }, - legend: { - show: true, - position: 'bottom', - horizontalAlign: 'center', - fontWeight: 400, - fontSize: '8px', - offsetX: 0, - offsetY: 0, - markers: { - width: 9, - height: 9, - radius: 4, - }, - }, - stroke: { - show: true, - width: 2, - colors: ['transparent'] - }, - grid: { - show: false, - }, - colors: chartAudienceColumnChartsColors, - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - axisTicks: { - show: false, - }, - axisBorder: { - show: true, - strokeDashArray: 1, - height: 1, - width: '100%', - offsetX: 0, - offsetY: 0 - }, - }, - yaxis: { - show: false - }, - fill: { - opacity: 1 - } - }; - var chart = new ApexCharts(document.querySelector("#audiences_metrics_charts"), columnoptions); - chart.render(); -} - -// User by devices -var dountchartUserDeviceColors = getChartColorsArray("user_device_pie_charts"); -if (dountchartUserDeviceColors) { - var options = { - series: [78.56, 105.02, 42.89], - labels: ["Desktop", "Mobile", "Tablet"], - chart: { - type: "donut", - height: 219, - }, - plotOptions: { - pie: { - size: 100, - donut: { - size: "76%", - }, - }, - }, - dataLabels: { - enabled: false, - }, - legend: { - show: false, - position: 'bottom', - horizontalAlign: 'center', - offsetX: 0, - offsetY: 0, - markers: { - width: 20, - height: 6, - radius: 2, - }, - itemMargin: { - horizontal: 12, - vertical: 0 - }, - }, - stroke: { - width: 0 - }, - yaxis: { - labels: { - formatter: function (value) { - return value + "k" + " Users"; - } - }, - tickAmount: 4, - min: 0 - }, - colors: dountchartUserDeviceColors, - }; - var chart = new ApexCharts(document.querySelector("#user_device_pie_charts"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/dashboard-crm.init.js b/src/main/resources/static/assets/js/pages/dashboard-crm.init.js deleted file mode 100644 index d73ce6d..0000000 --- a/src/main/resources/static/assets/js/pages/dashboard-crm.init.js +++ /dev/null @@ -1,233 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: CRM Dashboard init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } else { - console.warn('data-colors Attribute not found on:', chartId); - } - } -} - -// Sales forecast charts -var areachartSalesColors = getChartColorsArray("sales-forecast-chart"); -if (areachartSalesColors) { - var options = { - series: [{ - name: 'Goal', - data: [37] - }, { - name: 'Pending Forcast', - data: [12] - }, { - name: 'Revenue', - data: [18] - }], - chart: { - type: 'bar', - height: 341, - toolbar: { - show: false, - }, - }, - plotOptions: { - bar: { - horizontal: false, - columnWidth: '65%', - }, - }, - stroke: { - show: true, - width: 5, - colors: ['transparent'] - }, - xaxis: { - categories: [''], - axisTicks: { - show: false, - borderType: 'solid', - color: '#78909C', - height: 6, - offsetX: 0, - offsetY: 0 - }, - title: { - text: 'Total Forecasted Value', - offsetX: 0, - offsetY: -30, - style: { - color: '#78909C', - fontSize: '12px', - fontWeight: 400, - }, - }, - }, - yaxis: { - labels: { - formatter: function (value) { - return "$" + value + "k"; - } - }, - tickAmount: 4, - min: 0 - }, - fill: { - opacity: 1 - }, - legend: { - show: true, - position: 'bottom', - horizontalAlign: 'center', - fontWeight: 500, - offsetX: 0, - offsetY: -14, - itemMargin: { - horizontal: 8, - vertical: 0 - }, - markers: { - width: 10, - height: 10, - } - }, - colors: areachartSalesColors - }; - var chart = new ApexCharts(document.querySelector("#sales-forecast-chart"), options); - chart.render(); -} - -// Deal Type Charts -var dealTypeChartsColors = getChartColorsArray("deal-type-charts"); -if (dealTypeChartsColors) { - var options = { - series: [{ - name: 'Pending', - data: [80, 50, 30, 40, 100, 20], - }, - { - name: 'Loss', - data: [20, 30, 40, 80, 20, 80], - }, - { - name: 'Won', - data: [44, 76, 78, 13, 43, 10], - } - ], - chart: { - height: 341, - type: 'radar', - dropShadow: { - enabled: true, - blur: 1, - left: 1, - top: 1 - }, - toolbar: { - show: false - }, - }, - stroke: { - width: 2 - }, - fill: { - opacity: 0.2 - }, - legend: { - show: true, - fontWeight: 500, - offsetX: 0, - offsetY: -8, - markers: { - width: 8, - height: 8, - radius: 6, - }, - itemMargin: { - horizontal: 10, - vertical: 0 - } - }, - markers: { - size: 0 - }, - colors: dealTypeChartsColors, - xaxis: { - categories: ['2016', '2017', '2018', '2019', '2020', '2021'] - } - }; - var chart = new ApexCharts(document.querySelector("#deal-type-charts"), options); - chart.render(); -} - -// Balance Overview charts -var revenueExpensesChartsColors = getChartColorsArray("revenue-expenses-charts"); -if (revenueExpensesChartsColors) { - var options = { - series: [{ - name: 'Revenue', - data: [20, 25, 30, 35, 40, 55, 70, 110, 150, 180, 210, 250] - }, { - name: 'Expenses', - data: [12, 17, 45, 42, 24, 35, 42, 75, 102, 108, 156, 199] - }], - chart: { - height: 290, - type: 'area', - toolbar: 'false', - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'smooth', - width: 2, - }, - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] - }, - yaxis: { - labels: { - formatter: function (value) { - return "$" + value + "k"; - } - }, - tickAmount: 5, - min: 0, - max: 260 - }, - colors: revenueExpensesChartsColors, - fill: { - opacity: 0.06, - colors: revenueExpensesChartsColors, - type: 'solid' - } - }; - var chart = new ApexCharts(document.querySelector("#revenue-expenses-charts"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/dashboard-crypto.init.js b/src/main/resources/static/assets/js/pages/dashboard-crypto.init.js deleted file mode 100644 index 0a92a8f..0000000 --- a/src/main/resources/static/assets/js/pages/dashboard-crypto.init.js +++ /dev/null @@ -1,748 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Crypto Dashboard init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue( - newValue - ); - if (color) return color; - else return newValue; - } else { - var val = value.split(","); - if (val.length == 2) { - var rgbaColor = getComputedStyle( - document.documentElement - ).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } else { - console.warn('data-colors Attribute not found on:', chartId); - } - } -} - -// Total Portfolio Donut Charts -var donutchartportfolioColors = getChartColorsArray("portfolio_donut_charts"); -if (donutchartportfolioColors) { - var options = { - series: [19405, 40552, 15824, 30635], - labels: ["Bitcoin", "Ethereum", "Litecoin", "Dash"], - chart: { - type: "donut", - height: 224, - }, - - plotOptions: { - pie: { - size: 100, - offsetX: 0, - offsetY: 0, - donut: { - size: "70%", - labels: { - show: true, - name: { - show: true, - fontSize: "18px", - offsetY: -5, - }, - value: { - show: true, - fontSize: "20px", - color: "#343a40", - fontWeight: 500, - offsetY: 5, - formatter: function (val) { - return "$" + val; - }, - }, - total: { - show: true, - fontSize: "13px", - label: "Total value", - color: "#9599ad", - fontWeight: 500, - formatter: function (w) { - return ( - "$" + - w.globals.seriesTotals.reduce(function (a, b) { - return a + b; - }, 0) - ); - }, - }, - }, - }, - }, - }, - dataLabels: { - enabled: false, - }, - legend: { - show: false, - }, - yaxis: { - labels: { - formatter: function (value) { - return "$" + value; - }, - }, - }, - stroke: { - lineCap: "round", - width: 2, - }, - colors: donutchartportfolioColors, - }; - var chart = new ApexCharts(document.querySelector("#portfolio_donut_charts"), options); - chart.render(); -} - -// Market Chart Candalstick -var MarketchartColors = getChartColorsArray("Market_chart"); -if (MarketchartColors) { - var options = { - series: [{ - data: [{ - x: new Date(1538778600000), - y: [6629.81, 6650.5, 6623.04, 6633.33], - }, - { - x: new Date(1538780400000), - y: [6632.01, 6643.59, 6620, 6630.11], - }, - { - x: new Date(1538782200000), - y: [6630.71, 6648.95, 6623.34, 6635.65], - }, - { - x: new Date(1538784000000), - y: [6635.65, 6651, 6629.67, 6638.24], - }, - { - x: new Date(1538785800000), - y: [6638.24, 6640, 6620, 6624.47], - }, - { - x: new Date(1538787600000), - y: [6624.53, 6636.03, 6621.68, 6624.31], - }, - { - x: new Date(1538789400000), - y: [6624.61, 6632.2, 6617, 6626.02], - }, - { - x: new Date(1538791200000), - y: [6627, 6627.62, 6584.22, 6603.02], - }, - { - x: new Date(1538793000000), - y: [6605, 6608.03, 6598.95, 6604.01], - }, - { - x: new Date(1538794800000), - y: [6604.5, 6614.4, 6602.26, 6608.02], - }, - { - x: new Date(1538796600000), - y: [6608.02, 6610.68, 6601.99, 6608.91], - }, - { - x: new Date(1538798400000), - y: [6608.91, 6618.99, 6608.01, 6612], - }, - { - x: new Date(1538800200000), - y: [6612, 6615.13, 6605.09, 6612], - }, - { - x: new Date(1538802000000), - y: [6612, 6624.12, 6608.43, 6622.95], - }, - { - x: new Date(1538803800000), - y: [6623.91, 6623.91, 6615, 6615.67], - }, - { - x: new Date(1538805600000), - y: [6618.69, 6618.74, 6610, 6610.4], - }, - { - x: new Date(1538807400000), - y: [6611, 6622.78, 6610.4, 6614.9], - }, - { - x: new Date(1538809200000), - y: [6614.9, 6626.2, 6613.33, 6623.45], - }, - { - x: new Date(1538811000000), - y: [6623.48, 6627, 6618.38, 6620.35], - }, - { - x: new Date(1538812800000), - y: [6619.43, 6620.35, 6610.05, 6615.53], - }, - { - x: new Date(1538814600000), - y: [6615.53, 6617.93, 6610, 6615.19], - }, - { - x: new Date(1538816400000), - y: [6615.19, 6621.6, 6608.2, 6620], - }, - { - x: new Date(1538818200000), - y: [6619.54, 6625.17, 6614.15, 6620], - }, - { - x: new Date(1538820000000), - y: [6620.33, 6634.15, 6617.24, 6624.61], - }, - { - x: new Date(1538821800000), - y: [6625.95, 6626, 6611.66, 6617.58], - }, - { - x: new Date(1538823600000), - y: [6619, 6625.97, 6595.27, 6598.86], - }, - { - x: new Date(1538825400000), - y: [6598.86, 6598.88, 6570, 6587.16], - }, - { - x: new Date(1538827200000), - y: [6588.86, 6600, 6580, 6593.4], - }, - { - x: new Date(1538829000000), - y: [6593.99, 6598.89, 6585, 6587.81], - }, - { - x: new Date(1538830800000), - y: [6587.81, 6592.73, 6567.14, 6578], - }, - { - x: new Date(1538832600000), - y: [6578.35, 6581.72, 6567.39, 6579], - }, - { - x: new Date(1538834400000), - y: [6579.38, 6580.92, 6566.77, 6575.96], - }, - { - x: new Date(1538836200000), - y: [6575.96, 6589, 6571.77, 6588.92], - }, - { - x: new Date(1538838000000), - y: [6588.92, 6594, 6577.55, 6589.22], - }, - { - x: new Date(1538839800000), - y: [6589.3, 6598.89, 6589.1, 6596.08], - }, - { - x: new Date(1538841600000), - y: [6597.5, 6600, 6588.39, 6596.25], - }, - { - x: new Date(1538843400000), - y: [6598.03, 6600, 6588.73, 6595.97], - }, - { - x: new Date(1538845200000), - y: [6595.97, 6602.01, 6588.17, 6602], - }, - { - x: new Date(1538847000000), - y: [6602, 6607, 6596.51, 6599.95], - }, - { - x: new Date(1538848800000), - y: [6600.63, 6601.21, 6590.39, 6591.02], - }, - { - x: new Date(1538850600000), - y: [6591.02, 6603.08, 6591, 6591], - }, - { - x: new Date(1538852400000), - y: [6591, 6601.32, 6585, 6592], - }, - { - x: new Date(1538854200000), - y: [6593.13, 6596.01, 6590, 6593.34], - }, - { - x: new Date(1538856000000), - y: [6593.34, 6604.76, 6582.63, 6593.86], - }, - { - x: new Date(1538857800000), - y: [6593.86, 6604.28, 6586.57, 6600.01], - }, - { - x: new Date(1538859600000), - y: [6601.81, 6603.21, 6592.78, 6596.25], - }, - { - x: new Date(1538861400000), - y: [6596.25, 6604.2, 6590, 6602.99], - }, - { - x: new Date(1538863200000), - y: [6602.99, 6606, 6584.99, 6587.81], - }, - { - x: new Date(1538865000000), - y: [6587.81, 6595, 6583.27, 6591.96], - }, - { - x: new Date(1538866800000), - y: [6591.97, 6596.07, 6585, 6588.39], - }, - { - x: new Date(1538868600000), - y: [6587.6, 6598.21, 6587.6, 6594.27], - }, - { - x: new Date(1538870400000), - y: [6596.44, 6601, 6590, 6596.55], - }, - { - x: new Date(1538872200000), - y: [6598.91, 6605, 6596.61, 6600.02], - }, - { - x: new Date(1538874000000), - y: [6600.55, 6605, 6589.14, 6593.01], - }, - { - x: new Date(1538875800000), - y: [6593.15, 6605, 6592, 6603.06], - }, - { - x: new Date(1538877600000), - y: [6603.07, 6604.5, 6599.09, 6603.89], - }, - { - x: new Date(1538879400000), - y: [6604.44, 6604.44, 6600, 6603.5], - }, - { - x: new Date(1538881200000), - y: [6603.5, 6603.99, 6597.5, 6603.86], - }, - { - x: new Date(1538883000000), - y: [6603.85, 6605, 6600, 6604.07], - }, - { - x: new Date(1538884800000), - y: [6604.98, 6606, 6604.07, 6606], - }, - ], - }, ], - chart: { - type: "candlestick", - height: 294, - toolbar: { - show: false, - }, - }, - plotOptions: { - candlestick: { - colors: { - upward: MarketchartColors[0], - downward: MarketchartColors[1], - }, - }, - }, - xaxis: { - type: "datetime", - }, - yaxis: { - tooltip: { - enabled: true, - }, - labels: { - formatter: function (value) { - return "$" + value; - }, - }, - }, - tooltip: { - shared: true, - y: [{ - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0); - } - return y; - }, - }, - { - formatter: function (y) { - if (typeof y !== "undefined") { - return "$" + y.toFixed(2) + "k"; - } - return y; - }, - }, - { - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0) + " Sales"; - } - return y; - }, - }, - ], - }, - }; - var chart = new ApexCharts(document.querySelector("#Market_chart"), options); - chart.render(); -} - -// Bitcoin -var areachartbitcoinColors = getChartColorsArray("bitcoin_sparkline_charts"); -if (areachartbitcoinColors) { - var options = { - series: [{ - name: "Bitcoin", - data: [85, 68, 35, 90, 8, 11, 26, 54], - }, ], - chart: { - width: 130, - height: 50, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartbitcoinColors, - }; - var chart = new ApexCharts(document.querySelector("#bitcoin_sparkline_charts"), options); - chart.render(); -} - -// Litecoin -var areachartlitecoinColors = getChartColorsArray("litecoin_sparkline_charts"); -if (areachartlitecoinColors) { - var options = { - series: [{ - name: "Litecoin", - data: [25, 50, 41, 87, 12, 36, 9, 54], - }, ], - chart: { - width: 130, - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartlitecoinColors, - }; - var chart = new ApexCharts(document.querySelector("#litecoin_sparkline_charts"), options); - chart.render(); -} - -// Eathereum -var areacharteathereumColors = getChartColorsArray("eathereum_sparkline_charts"); -if (areacharteathereumColors) { - var options = { - series: [{ - name: "Eathereum", - data: [36, 21, 65, 22, 35, 50, 29, 44], - }, ], - chart: { - width: 130, - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areacharteathereumColors, - }; - var chart = new ApexCharts(document.querySelector("#eathereum_sparkline_charts"), options); - chart.render(); -} - -// Binance -var areachartbinanceColors = getChartColorsArray("binance_sparkline_charts"); -if (areachartbinanceColors) { - var options = { - series: [{ - name: "Binance", - data: [30, 58, 29, 89, 12, 36, 9, 54], - }, ], - chart: { - width: 130, - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartbinanceColors, - }; - var chart = new ApexCharts(document.querySelector("#binance_sparkline_charts"), options); - chart.render(); -} - -// Dash -var areachartdashColors = getChartColorsArray("dash_sparkline_charts"); -if (areachartdashColors) { - var options = { - series: [{ - name: "Dash", - data: [24, 68, 39, 86, 29, 42, 11, 58], - }, ], - chart: { - width: 130, - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartdashColors, - }; - var chart = new ApexCharts(document.querySelector("#dash_sparkline_charts"), options); - chart.render(); -} - -// Tether -var areacharttetherColors = getChartColorsArray("tether_sparkline_charts"); -if (areacharttetherColors) { - var options = { - series: [{ - name: "Dash", - data: [13, 76, 12, 85, 25, 60, 9, 54], - }, ], - chart: { - width: 130, - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areacharttetherColors, - }; - var chart = new ApexCharts(document.querySelector("#tether_sparkline_charts"), options); - chart.render(); -} - -// Neo -var areachartneoColors = getChartColorsArray("neo_sparkline_charts"); -if (areachartneoColors) { - var options = { - series: [{ - name: "Neo", - data: [9, 66, 41, 89, 12, 36, 25, 54], - }, ], - chart: { - width: 130, - height: 46, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartneoColors, - }; - var chart = new ApexCharts(document.querySelector("#neo_sparkline_charts"), options); - chart.render(); -} - -// Swiper Slider -var swiper = new Swiper(".cryptoSlider", { - slidesPerView: 1, - loop: false, - spaceBetween: 24, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, - breakpoints: { - 640: { - slidesPerView: 2, - }, - 768: { - slidesPerView: 2.5, - }, - 1024: { - slidesPerView: 3, - }, - 1200: { - slidesPerView: 5, - }, - }, -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/dashboard-ecommerce.init.js b/src/main/resources/static/assets/js/pages/dashboard-ecommerce.init.js deleted file mode 100644 index 338a950..0000000 --- a/src/main/resources/static/assets/js/pages/dashboard-ecommerce.init.js +++ /dev/null @@ -1,344 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Ecommerce Dashboard init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue( - newValue - ); - if (color) return color; - else return newValue; - } else { - var val = value.split(","); - if (val.length == 2) { - var rgbaColor = getComputedStyle( - document.documentElement - ).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } else { - console.warn('data-colors atributes not found on', chartId); - } - } -} - -var linechartcustomerColors = getChartColorsArray("customer_impression_charts"); -if (linechartcustomerColors) { - var options = { - series: [{ - name: "Orders", - type: "area", - data: [34, 65, 46, 68, 49, 61, 42, 44, 78, 52, 63, 67], - }, - { - name: "Earnings", - type: "bar", - data: [ - 89.25, 98.58, 68.74, 108.87, 77.54, 84.03, 51.24, 28.57, 92.57, 42.36, - 88.51, 36.57, - ], - }, - { - name: "Refunds", - type: "line", - data: [8, 12, 7, 17, 21, 11, 5, 9, 7, 29, 12, 35], - }, - ], - chart: { - height: 370, - type: "line", - toolbar: { - show: false, - }, - }, - stroke: { - curve: "straight", - dashArray: [0, 0, 8], - width: [2, 0, 2.2], - }, - fill: { - opacity: [0.1, 0.9, 1], - }, - markers: { - size: [0, 0, 0], - strokeWidth: 2, - hover: { - size: 4, - }, - }, - xaxis: { - categories: [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec", - ], - axisTicks: { - show: false, - }, - axisBorder: { - show: false, - }, - }, - grid: { - show: true, - xaxis: { - lines: { - show: true, - }, - }, - yaxis: { - lines: { - show: false, - }, - }, - padding: { - top: 0, - right: -2, - bottom: 15, - left: 10, - }, - }, - legend: { - show: true, - horizontalAlign: "center", - offsetX: 0, - offsetY: -5, - markers: { - width: 9, - height: 9, - radius: 6, - }, - itemMargin: { - horizontal: 10, - vertical: 0, - }, - }, - plotOptions: { - bar: { - columnWidth: "30%", - barHeight: "70%", - }, - }, - colors: linechartcustomerColors, - tooltip: { - shared: true, - y: [{ - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0); - } - return y; - }, - }, - { - formatter: function (y) { - if (typeof y !== "undefined") { - return "$" + y.toFixed(2) + "k"; - } - return y; - }, - }, - { - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0) + " Sales"; - } - return y; - }, - }, - ], - }, - }; - var chart = new ApexCharts( - document.querySelector("#customer_impression_charts"), - options - ); - chart.render(); -} - -// Simple Donut Charts -var chartDonutBasicColors = getChartColorsArray("store-visits-source"); -if (chartDonutBasicColors) { - var options = { - series: [44, 55, 41, 17, 15], - labels: ["Direct", "Social", "Email", "Other", "Referrals"], - chart: { - height: 333, - type: "donut", - }, - legend: { - position: "bottom", - }, - stroke: { - show: false - }, - dataLabels: { - dropShadow: { - enabled: false, - }, - }, - colors: chartDonutBasicColors, - }; - - var chart = new ApexCharts( - document.querySelector("#store-visits-source"), - options - ); - chart.render(); -} - -// world map with markers -var vectorMapWorldMarkersColors = getChartColorsArray("sales-by-locations"); -if (vectorMapWorldMarkersColors) { - var worldemapmarkers = new jsVectorMap({ - map: "world_merc", - selector: "#sales-by-locations", - zoomOnScroll: false, - zoomButtons: false, - selectedMarkers: [0, 5], - regionStyle: { - initial: { - stroke: "#9599ad", - strokeWidth: 0.25, - fill: vectorMapWorldMarkersColors[0], - fillOpacity: 1, - }, - }, - markersSelectable: true, - markers: [{ - name: "Palestine", - coords: [31.9474, 35.2272], - }, - { - name: "Russia", - coords: [61.524, 105.3188], - }, - { - name: "Canada", - coords: [56.1304, -106.3468], - }, - { - name: "Greenland", - coords: [71.7069, -42.6043], - }, - ], - markerStyle: { - initial: { - fill: vectorMapWorldMarkersColors[1], - }, - selected: { - fill: vectorMapWorldMarkersColors[2], - }, - }, - labels: { - markers: { - render: function (marker) { - return marker.name; - }, - }, - }, - }); -} - -// Vertical Swiper -var swiper = new Swiper(".vertical-swiper", { - slidesPerView: 2, - spaceBetween: 10, - mousewheel: true, - loop: true, - direction: "vertical", - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, -}); - -var layoutRightSideBtn = document.querySelector('.layout-rightside-btn'); -if (layoutRightSideBtn) { - Array.from(document.querySelectorAll(".layout-rightside-btn")).forEach(function (item) { - var userProfileSidebar = document.querySelector(".layout-rightside-col"); - item.addEventListener("click", function () { - if (userProfileSidebar.classList.contains("d-block")) { - userProfileSidebar.classList.remove("d-block"); - userProfileSidebar.classList.add("d-none"); - } else { - userProfileSidebar.classList.remove("d-none"); - userProfileSidebar.classList.add("d-block"); - } - }); - }); - window.addEventListener("resize", function () { - var userProfileSidebar = document.querySelector(".layout-rightside-col"); - if (userProfileSidebar) { - Array.from(document.querySelectorAll(".layout-rightside-btn")).forEach(function () { - if (window.outerWidth < 1699 || window.outerWidth > 3440) { - userProfileSidebar.classList.remove("d-block"); - } else if (window.outerWidth > 1699) { - userProfileSidebar.classList.add("d-block"); - } - }); - } - - var htmlAttr = document.documentElement; - if(htmlAttr.getAttribute("data-layout") == "semibox"){ - userProfileSidebar.classList.remove("d-block"); - userProfileSidebar.classList.add("d-none"); - } - }); - var overlay = document.querySelector('.overlay'); - if (overlay) { - document.querySelector(".overlay").addEventListener("click", function () { - if (document.querySelector(".layout-rightside-col").classList.contains('d-block') == true) { - document.querySelector(".layout-rightside-col").classList.remove("d-block"); - } - }); - } -} - -window.addEventListener("load", function () { - var userProfileSidebar = document.querySelector(".layout-rightside-col"); - if (userProfileSidebar) { - Array.from(document.querySelectorAll(".layout-rightside-btn")).forEach(function () { - if (window.outerWidth < 1699 || window.outerWidth > 3440) { - userProfileSidebar.classList.remove("d-block"); - } else if (window.outerWidth > 1699) { - userProfileSidebar.classList.add("d-block"); - } - }); - } - - var htmlAttr = document.documentElement - - if(htmlAttr.getAttribute("data-layout") == "semibox"){ - if (window.outerWidth > 1699) { - userProfileSidebar.classList.remove("d-block"); - userProfileSidebar.classList.add("d-none"); - } - } -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/dashboard-job.init.js b/src/main/resources/static/assets/js/pages/dashboard-job.init.js deleted file mode 100644 index be1229a..0000000 --- a/src/main/resources/static/assets/js/pages/dashboard-job.init.js +++ /dev/null @@ -1,553 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: job Dashboard init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue( - newValue - ); - if (color) return color; - else return newValue; - } else { - var val = value.split(","); - if (val.length == 2) { - var rgbaColor = getComputedStyle( - document.documentElement - ).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } else { - console.warn('data-colors atributes not found on', chartId); - } - } -} - -// Dashed line chart -var linechartDashedColors = getChartColorsArray("line_chart_dashed"); -if (linechartDashedColors) { - var options = { - chart: { - height: 345, - type: 'line', - zoom: { - enabled: false - }, - toolbar: { - show: false, - } - }, - colors: linechartDashedColors, - dataLabels: { - enabled: false - }, - stroke: { - width: [3, 4, 3], - curve: 'straight', - dashArray: [0, 8, 5] - }, - series: [{ - name: 'New Application', - data: [89, 56, 74, 98, 72, 38, 64, 46, 84, 58, 46, 49] - }, - { - name: "Interview", - data: [45, 52, 38, 24, 33, 26, 21, 20, 6, 8, 15, 10] - }, - { - name: " Hired", - data: [36, 42, 60, 42, 13, 18, 29, 37, 36, 51, 32, 35] - } - ], - markers: { - size: 0, - - hover: { - sizeOffset: 6 - } - }, - xaxis: { - categories: ['01 Jan', '02 Jan', '03 Jan', '04 Jan', '05 Jan', '06 Jan', '07 Jan', '08 Jan', '09 Jan', - '10 Jan', '11 Jan', '12 Jan' - ], - }, - grid: { - borderColor: '#f1f1f1', - } - } - - var chart = new ApexCharts( - document.querySelector("#line_chart_dashed"), - options - ); - - chart.render(); -} - -// Simple Donut Charts -var chartDonutBasicColors = getChartColorsArray("store-visits-source"); -if (chartDonutBasicColors) { - var options = { - series: [44, 55, 41, 17, 15], - labels: ["Direct", "Social", "Email", "Other", "Referrals"], - chart: { - height: 333, - type: "donut", - }, - legend: { - position: "bottom", - }, - stroke: { - show: false - }, - dataLabels: { - dropShadow: { - enabled: false, - }, - }, - colors: chartDonutBasicColors, - }; - - var chart = new ApexCharts( - document.querySelector("#store-visits-source"), - options - ); - chart.render(); -} - -// world map with markers -var vectorMapWorldMarkersColors = getChartColorsArray("sales-by-locations"); -if (vectorMapWorldMarkersColors) { - var worldemapmarkers = new jsVectorMap({ - map: "world_merc", - selector: "#sales-by-locations", - zoomOnScroll: false, - zoomButtons: false, - selectedMarkers: [0, 5], - regionStyle: { - initial: { - stroke: "#9599ad", - strokeWidth: 0.25, - fill: vectorMapWorldMarkersColors[0], - fillOpacity: 1, - }, - }, - markersSelectable: true, - markers: [{ - name: "Palestine", - coords: [31.9474, 35.2272], - }, - { - name: "Russia", - coords: [61.524, 105.3188], - }, - { - name: "Canada", - coords: [56.1304, -106.3468], - }, - { - name: "Greenland", - coords: [71.7069, -42.6043], - }, - ], - markerStyle: { - initial: { - fill: vectorMapWorldMarkersColors[1], - }, - selected: { - fill: vectorMapWorldMarkersColors[2], - }, - }, - labels: { - markers: { - render: function (marker) { - return marker.name; - }, - }, - }, - }); -} - -var jobListAllData = [ - ["Marketing Director", "Meta4Systems", "Vinninga, Sweden", "$250 - $800", "0-5 year", "Full Time"], - ["UI/UX designer", "Zoetic Fashion", "Cullera, Spain", "$400+", "0-2 year", "Part Time"], - ["Web Designer", "Force Medicines", "Ugashik, US", "$412 - $241 ", "3+ year", "Freelancer"], - ["Full Stack Engineer", "Syntyce Solutions", "Zuweihir, UAE", "$650 - $900", "0-1+ year", "Full Time"], - ["Assistant / Store Keeper", "Moetic Fashion", "Limestone, US", "$340 - $800", "0-3 year", "Intership"], - ["Project Manager", "Themesbrand", "California, US", "$400 - $600", "3+ year", "Part Time"], - ["Education Training", "Micro Design", "Germany", "$750 - $940", "1.5+ year", "Freelancer"], - ["Graphic Designer", "Digitech Galaxy", "Mughairah, UAE", "$160 - $230", "2-3+ year", "Full Time"], - ["React Developer", "iTest Factory", "Khabākhib, UAE", "$90 - $160", "5+ year", "Intership"], - ["Executive, HR Operations", "Micro Design", "Texanna, US", "$50 - $120", "1-5 year", "Part Time"], - ["Project Manager", "Meta4Systems", "Limestone, US", "$210 - $300", "0-2+ year", "Freelancer"], - ["Full Stack Engineer", "Force Medicines", "Ugashik, US", "$120 - $180", "2-5 year", "Part Time"], - ["Full Stack Engineer", "Digitech Galaxy", "Maidaq, UAE", "$900 - $1020", "3-5 year", "Full Time"], - ["Marketing Director", "Zoetic Fashion", "Quesada, US", "$600 - $870", "0-5 year", "Freelancer"], -]; - -// recomended-jobs -if (document.getElementById("recomended-jobs")){ - var jobListAll = new gridjs.Grid({ - columns: [{ - name: 'Position', - width: '150px', - }, { - name: 'Company Name', - width: '250px', - }, { - name: 'Location', - width: '250px', - }, { - name: 'Salary', - width: '250px', - }, { - name: 'Experience', - width: '150px', - },{ - name: 'Job Type', - width: '150px', - }], - sort: true, - // search: true, - pagination: { - limit: 6 - }, - data: jobListAllData, - }).render(document.getElementById("recomended-jobs")); - - // Search product list - var searchResultList = document.getElementById("searchResultList"); - searchResultList.addEventListener("keyup", function () { - var inputVal = searchResultList.value.toLowerCase(); - function filterItems(arr, query) { - return arr.filter(function (el) { - return el[0].toLowerCase().indexOf(query.toLowerCase()) !== -1 || el[1].toLowerCase().indexOf(query.toLowerCase()) !== -1 - }) - } - - var filterData = filterItems(jobListAllData, inputVal); - - jobListAll.updateConfig({ - data: filterData - }).forceRender(); - }); -} - - -// candidate-list - -Array.from(document.querySelectorAll("#candidate-list li")).forEach(function (item) { - item.querySelector("a").addEventListener("click", function () { - var candidateName = item.querySelector(".candidate-name").innerHTML; - var candidatePosition = item.querySelector(".candidate-position").innerHTML; - var candidateImg = item.querySelector(".candidate-img").src - - document.getElementById("candidate-name").innerHTML = candidateName; - document.getElementById("candidate-position").innerHTML = candidatePosition; - document.getElementById("candidate-img").src = candidateImg; - }) -}); - - -window.addEventListener("load", () => { - var searchInput = document.getElementById("searchList"), // search box - candidateList = document.querySelectorAll("#candidate-list li"); // all list items - - searchInput.onkeyup = () => { - let search = searchInput.value.toLowerCase(); - - for (let i of candidateList) { - let item = i.querySelector(".candidate-name").innerHTML.toLowerCase(); - if (item.indexOf(search) == -1) { i.classList.add("d-none"); } - else { i.classList.remove("d-none"); } - } - }; -}); - -// total jobs Charts -var chartRadialbarBasicColors = getChartColorsArray("total_jobs"); -if (chartRadialbarBasicColors) { - var options = { - series: [95], - chart: { - type: 'radialBar', - width: 105, - sparkline: { - enabled: true - } - }, - dataLabels: { - enabled: false - }, - plotOptions: { - radialBar: { - hollow: { - margin: 0, - size: '70%' - }, - track: { - margin: 1 - }, - dataLabels: { - show: true, - name: { - show: false - }, - value: { - show: true, - fontSize: '16px', - fontWeight: 600, - offsetY: 8, - } - } - } - }, - colors: chartRadialbarBasicColors - }; - - var chart = new ApexCharts(document.querySelector("#total_jobs"), options); - chart.render(); -} - - -// apply jobs Charts -var chartRadialbarBasicColors = getChartColorsArray("apply_jobs"); -if (chartRadialbarBasicColors) { - var options = { - series: [97], - chart: { - type: 'radialBar', - width: 105, - sparkline: { - enabled: true - } - }, - dataLabels: { - enabled: false - }, - plotOptions: { - radialBar: { - hollow: { - margin: 0, - size: '70%' - }, - track: { - margin: 1 - }, - dataLabels: { - show: true, - name: { - show: false - }, - value: { - show: true, - fontSize: '16px', - fontWeight: 600, - offsetY: 8, - } - } - } - }, - colors: chartRadialbarBasicColors - }; - - var chart = new ApexCharts(document.querySelector("#apply_jobs"), options); - chart.render(); -} - -// interview_chart -var chartRadialbarBasicColors = getChartColorsArray("interview_chart"); -if (chartRadialbarBasicColors) { - var options = { - series: [89], - chart: { - type: 'radialBar', - width: 105, - sparkline: { - enabled: true - } - }, - dataLabels: { - enabled: false - }, - plotOptions: { - radialBar: { - hollow: { - margin: 0, - size: '70%' - }, - track: { - margin: 1 - }, - dataLabels: { - show: true, - name: { - show: false - }, - value: { - show: true, - fontSize: '16px', - fontWeight: 600, - offsetY: 8, - } - } - }, - }, - colors: chartRadialbarBasicColors - }; - - var chart = new ApexCharts(document.querySelector("#interview_chart"), options); - chart.render(); -} - - -// Hired Chart -var chartRadialbarBasicColors = getChartColorsArray("hired_chart"); -if (chartRadialbarBasicColors) { - var options = { - series: [64], - chart: { - type: 'radialBar', - width: 105, - sparkline: { - enabled: true - } - }, - dataLabels: { - enabled: false - }, - plotOptions: { - radialBar: { - hollow: { - margin: 0, - size: '70%' - }, - track: { - margin: 1 - }, - dataLabels: { - show: true, - name: { - show: false - }, - value: { - show: true, - fontSize: '16px', - fontWeight: 600, - offsetY: 8, - } - } - } - }, - colors: chartRadialbarBasicColors - }; - - var chart = new ApexCharts(document.querySelector("#hired_chart"), options); - chart.render(); -} - -// Rejected Chart -var chartRadialbarBasicColors = getChartColorsArray("rejected_chart"); -if (chartRadialbarBasicColors) { - var options = { - series: [20], - chart: { - type: 'radialBar', - width: 105, - sparkline: { - enabled: true - } - }, - dataLabels: { - enabled: false - }, - plotOptions: { - radialBar: { - hollow: { - margin: 0, - size: '70%' - }, - track: { - margin: 1 - }, - dataLabels: { - show: true, - name: { - show: false - }, - value: { - show: true, - fontSize: '16px', - fontWeight: 600, - offsetY: 8, - } - } - } - }, - colors: chartRadialbarBasicColors - }; - - var chart = new ApexCharts(document.querySelector("#rejected_chart"), options); - chart.render(); -} - -// New jobs Chart -var chartRadialbarBasicColors = getChartColorsArray("new_jobs_chart"); -if (chartRadialbarBasicColors) { - var options = { - series: [80], - chart: { - type: 'radialBar', - width: 105, - sparkline: { - enabled: true - } - }, - dataLabels: { - enabled: false - }, - plotOptions: { - radialBar: { - hollow: { - margin: 0, - size: '70%' - }, - track: { - margin: 1 - }, - dataLabels: { - show: true, - name: { - show: false - }, - value: { - show: true, - fontSize: '16px', - fontWeight: 600, - offsetY: 8, - } - } - } - }, - colors: chartRadialbarBasicColors - }; - - var chart = new ApexCharts(document.querySelector("#new_jobs_chart"), options); - chart.render(); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/dashboard-nft.init.js b/src/main/resources/static/assets/js/pages/dashboard-nft.init.js deleted file mode 100644 index 76593ab..0000000 --- a/src/main/resources/static/assets/js/pages/dashboard-nft.init.js +++ /dev/null @@ -1,697 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: nft Dashboard init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue( - newValue - ); - if (color) return color; - else return newValue; - } else { - var val = value.split(","); - if (val.length == 2) { - var rgbaColor = getComputedStyle( - document.documentElement - ).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } else { - console.warn('data-colors atributes not found on', chartId); - } - } -} - -// Chart-1 -var areachartmini1Colors = getChartColorsArray("mini-chart-1"); -if (areachartmini1Colors) { - var options1 = { - series: [{ - data: [25, 66, 41, 89, 63, 25, 44, 12] - }], - chart: { - type: 'line', - width: 80, - height: 30, - sparkline: { - enabled: true - } - - }, - colors: areachartmini1Colors, - stroke: { - curve: 'smooth', - width: 2.3, - }, - tooltip: { - fixed: { - enabled: false - }, - x: { - show: false - }, - y: { - title: { - formatter: function (seriesName) { - return '' - } - } - }, - marker: { - show: false - } - } - }; - - var chart1 = new ApexCharts(document.querySelector("#mini-chart-1"), options1); - chart1.render(); - -} - -// Chart-2 -var areachartmini2Colors = getChartColorsArray("mini-chart-2"); -if (areachartmini2Colors) { - var options1 = { - series: [{ - data: [50, 15, 35, 62, 23, 56, 44, 12] - }], - chart: { - type: 'line', - width: 80, - height: 30, - sparkline: { - enabled: true - } - - }, - colors: areachartmini2Colors, - stroke: { - curve: 'smooth', - width: 2.3, - }, - tooltip: { - fixed: { - enabled: false - }, - x: { - show: false - }, - y: { - title: { - formatter: function (seriesName) { - return '' - } - } - }, - marker: { - show: false - } - } - }; - - var chart1 = new ApexCharts(document.querySelector("#mini-chart-2"), options1); - chart1.render(); - -} - -// Chart-3 -var areachartmini3Colors = getChartColorsArray("mini-chart-3"); -if (areachartmini3Colors) { - var options1 = { - series: [{ - data: [25, 35, 35, 89, 63, 25, 44, 12] - }], - chart: { - type: 'line', - width: 80, - height: 30, - sparkline: { - enabled: true - } - - }, - colors: areachartmini3Colors, - stroke: { - curve: 'smooth', - width: 2.3, - }, - tooltip: { - fixed: { - enabled: false - }, - x: { - show: false - }, - y: { - title: { - formatter: function (seriesName) { - return '' - } - } - }, - marker: { - show: false - } - } - }; - - var chart1 = new ApexCharts(document.querySelector("#mini-chart-3"), options1); - chart1.render(); -} - -// Chart-4 -var areachartmini4Colors = getChartColorsArray("mini-chart-4"); -if (areachartmini4Colors) { - var options1 = { - series: [{ - data: [50, 15, 20, 34, 23, 56, 65, 41] - }], - chart: { - type: 'line', - width: 80, - height: 30, - sparkline: { - enabled: true - } - - }, - colors: areachartmini4Colors, - stroke: { - curve: 'smooth', - width: 2.3, - }, - tooltip: { - fixed: { - enabled: false - }, - x: { - show: false - }, - y: { - title: { - formatter: function (seriesName) { - return '' - } - } - }, - marker: { - show: false - } - } - }; - - var chart1 = new ApexCharts(document.querySelector("#mini-chart-4"), options1); - chart1.render(); -} - -// Chart-5 -var areachartmini5Colors = getChartColorsArray("mini-chart-5"); -if (areachartmini5Colors) { - var options1 = { - series: [{ - data: [45, 53, 24, 89, 63, 60, 36, 50] - }], - chart: { - type: 'line', - width: 80, - height: 30, - sparkline: { - enabled: true - } - - }, - colors: areachartmini5Colors, - stroke: { - curve: 'smooth', - width: 2.3, - }, - tooltip: { - fixed: { - enabled: false - }, - x: { - show: false - }, - y: { - title: { - formatter: function (seriesName) { - return '' - } - } - }, - marker: { - show: false - } - } - }; - - var chart1 = new ApexCharts(document.querySelector("#mini-chart-5"), options1); - chart1.render(); -} - -// Chart-6 -var areachartmini6Colors = getChartColorsArray("mini-chart-6"); -if (areachartmini6Colors) { - var options1 = { - series: [{ - data: [50, 15, 35, 62, 23, 56, 44, 12] - }], - chart: { - type: 'line', - width: 80, - height: 30, - sparkline: { - enabled: true - } - - }, - colors: areachartmini6Colors, - stroke: { - curve: 'smooth', - width: 2.3, - }, - tooltip: { - fixed: { - enabled: false - }, - x: { - show: false - }, - y: { - title: { - formatter: function (seriesName) { - return '' - } - } - }, - marker: { - show: false - } - } - }; - - var chart1 = new ApexCharts(document.querySelector("#mini-chart-6"), options1); - chart1.render(); -} - -// Chart-7 -var areachartmini7Colors = getChartColorsArray("mini-chart-7"); -if (areachartmini7Colors) { - var options1 = { - series: [{ - data: [50, 15, 20, 34, 23, 56, 65, 41] - }], - chart: { - type: 'line', - width: 80, - height: 30, - sparkline: { - enabled: true - } - - }, - colors: areachartmini7Colors, - stroke: { - curve: 'smooth', - width: 2.3, - }, - tooltip: { - fixed: { - enabled: false - }, - x: { - show: false - }, - y: { - title: { - formatter: function (seriesName) { - return '' - } - } - }, - marker: { - show: false - } - } - }; - - var chart1 = new ApexCharts(document.querySelector("#mini-chart-7"), options1); - chart1.render(); -} - -// Chart-5 -var areachartmini8Colors = getChartColorsArray("mini-chart-8"); -if (areachartmini8Colors) { - var options1 = { - series: [{ - data: [45, 53, 24, 89, 63, 60, 36, 50] - }], - chart: { - type: 'line', - width: 80, - height: 30, - sparkline: { - enabled: true - } - - }, - colors: areachartmini8Colors, - stroke: { - curve: 'smooth', - width: 2.3, - }, - tooltip: { - fixed: { - enabled: false - }, - x: { - show: false - }, - y: { - title: { - formatter: function (seriesName) { - return '' - } - } - }, - marker: { - show: false - } - } - }; - - var chart1 = new ApexCharts(document.querySelector("#mini-chart-8"), options1); - chart1.render(); -} - - -// Deal Type Charts -var dealTypeChartsColors = getChartColorsArray("deal-type-charts"); -if (dealTypeChartsColors) { - var options = { - series: [{ - name: 'Ethereum', - data: [80, 50, 30, 40, 100, 20], - }, - { - name: 'Artwork Sold', - data: [20, 30, 40, 80, 20, 80], - }, - { - name: 'Cancelation', - data: [44, 76, 78, 13, 43, 10], - } - ], - chart: { - height: 270, - type: 'radar', - dropShadow: { - enabled: true, - blur: 1, - left: 1, - top: 1 - }, - toolbar: { - show: false - }, - }, - stroke: { - width: 2 - }, - fill: { - opacity: 0.2 - }, - legend: { - show: false, - fontWeight: 500, - offsetX: 0, - offsetY: -8, - markers: { - width: 8, - height: 8, - radius: 6, - }, - itemMargin: { - horizontal: 10, - vertical: 0 - } - }, - markers: { - size: 0 - }, - colors: dealTypeChartsColors, - xaxis: { - categories: ['2016', '2017', '2018', '2019', '2020', '2021'] - } - }; - var chart = new ApexCharts(document.querySelector("#deal-type-charts"), options); - chart.render(); -} - -// Featured NFTs Artworks Slider -var swiper = new Swiper(".marketplace-swiper", { - loop: true, - slidesPerView: 1, - spaceBetween: 10, - pagination: { - el: ".swiper-pagination", - clickable: true, - }, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, - breakpoints: { - 640: { - slidesPerView: 2, - spaceBetween: 20, - }, - 768: { - slidesPerView: 2, - spaceBetween: 24, - }, - 1445: { - slidesPerView: 3, - spaceBetween: 24, - }, - }, -}); - -// collection-slider -var swiper = new Swiper(".collection-slider", { - loop: true, - slidesPerView: 1, - spaceBetween: 10, - pagination: { - el: ".swiper-pagination", - clickable: true, - }, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, -}); - -//Popularity chart -var barchartColors = getChartColorsArray("market-overview"); -if (barchartColors) { - var options = { - series: [{ - name: 'Like', - data: [12.45, 16.2, 8.9, 11.42, 12.6, 18.1, 18.2, 14.16] - }, { - name: 'Share', - data: [-11.45, -15.42, -7.9, -12.42, -12.6, -18.1, -18.2, -14.16] - }], - chart: { - type: 'bar', - height: 260, - stacked: true, - toolbar: { - show: false - }, - }, - stroke: { - colors: "#000" - }, - plotOptions: { - bar: { - columnWidth: '20%', - borderRadius: [4, 4] - }, - }, - colors: barchartColors, - fill: { - opacity: 1 - }, - dataLabels: { - enabled: false, - textAnchor: 'top', - }, - yaxis: { - labels: { - show: false, - formatter: function (y) { - return y.toFixed(0) + "%"; - } - } - }, - legend: { - position: 'top', - horizontalAlign: 'right', - }, - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug'], - labels: { - rotate: -90 - } - } - }; - - var chart = new ApexCharts(document.querySelector("#market-overview"), options); - chart.render(); -} - - -// Basic Line Charts -var linechartBasicColors = getChartColorsArray("line_chart_basic"); -if (linechartBasicColors) { - var options = { - series: [{ - name: "Artwork", - data: [10, 41, 35, 51, 49, 62, 69, 91, 148] - }, - { - name: "Auction", - data: [40, 120, 83, 45, 31, 74, 35, 34, 78] - }, - { - name: "Creators", - data: [95, 35, 20, 130, 64, 22, 43, 45, 31] - }], - chart: { - height: 350, - type: 'line', - zoom: { - enabled: false - }, - toolbar: { - show: false - } - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'smooth', - width: 3 - }, - colors: linechartBasicColors, - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'], - } - }; - - var chart = new ApexCharts(document.querySelector("#line_chart_basic"), options); - chart.render(); -} - - - -//creators-by-locations world map with markers -var vectorMapWorldMarkersColors = getChartColorsArray("creators-by-locations"); -if (vectorMapWorldMarkersColors) { - var worldemapmarkers = new jsVectorMap({ - map: "world_merc", - selector: "#creators-by-locations", - zoomOnScroll: false, - zoomButtons: false, - selectedMarkers: [0, 5], - regionStyle: { - initial: { - stroke: "#9599ad", - strokeWidth: 0.25, - fill: vectorMapWorldMarkersColors[0], - fillOpacity: 1, - }, - }, - markersSelectable: true, - markers: [{ - name: "United States", - coords: [37.0902, 95.7129], - style: { - image: "assets/images/flags/us.svg", - } - }, - { - name: "Russia", - coords: [61.524, 105.3188], - style: { - image: "assets/images/flags/russia.svg", - } - }, - { - name: "Spain", - coords: [40.4637, 3.7492], - style: { - image: "assets/images/flags/spain.svg", - } - }, - { - name: "Italy", - coords: [41.8719, 12.5674], - style: { - image: "assets/images/flags/italy.svg", - } - }, - { - name: "Germany", - coords: [51.1657, 10.4515], - style: { - image: "assets/images/flags/germany.svg", - } - }, - ], - markerStyle: { - initial: { - - fill: vectorMapWorldMarkersColors[1], - }, - selected: { - fill: vectorMapWorldMarkersColors[2], - }, - }, - labels: { - markers: { - render: function (marker) { - return marker.name; - }, - }, - }, - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/dashboard-projects.init.js b/src/main/resources/static/assets/js/pages/dashboard-projects.init.js deleted file mode 100644 index 2ee876c..0000000 --- a/src/main/resources/static/assets/js/pages/dashboard-projects.init.js +++ /dev/null @@ -1,249 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Project Dashboard init js -*/ - - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - if (colors) { - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } else { - console.warn('data-colors Attribute not found on:', chartId); - } - } -} - -// Projects Overview -var linechartcustomerColors = getChartColorsArray("projects-overview-chart"); -if (linechartcustomerColors) { - var options = { - series: [{ - name: 'Number of Projects', - type: 'bar', - data: [34, 65, 46, 68, 49, 61, 42, 44, 78, 52, 63, 67] - }, { - name: 'Revenue', - type: 'area', - data: [89.25, 98.58, 68.74, 108.87, 77.54, 84.03, 51.24, 28.57, 92.57, 42.36, 88.51, 36.57] - }, { - name: 'Active Projects', - type: 'bar', - data: [8, 12, 7, 17, 21, 11, 5, 9, 7, 29, 12, 35] - }], - chart: { - height: 374, - type: 'line', - toolbar: { - show: false, - } - }, - stroke: { - curve: 'smooth', - dashArray: [0, 3, 0], - width: [0, 1, 0], - }, - fill: { - opacity: [1, 0.1, 1] - }, - markers: { - size: [0, 4, 0], - strokeWidth: 2, - hover: { - size: 4, - } - }, - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - axisTicks: { - show: false - }, - axisBorder: { - show: false - } - }, - grid: { - show: true, - xaxis: { - lines: { - show: true, - } - }, - yaxis: { - lines: { - show: false, - } - }, - padding: { - top: 0, - right: -2, - bottom: 15, - left: 10 - }, - }, - legend: { - show: true, - horizontalAlign: 'center', - offsetX: 0, - offsetY: -5, - markers: { - width: 9, - height: 9, - radius: 6, - }, - itemMargin: { - horizontal: 10, - vertical: 0 - }, - }, - plotOptions: { - bar: { - columnWidth: '30%', - barHeight: '70%' - } - }, - colors: linechartcustomerColors, - tooltip: { - shared: true, - y: [{ - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0); - } - return y; - - } - }, { - formatter: function (y) { - if (typeof y !== "undefined") { - return "$" + y.toFixed(2) + "k"; - } - return y; - - } - }, { - formatter: function (y) { - if (typeof y !== "undefined") { - return y.toFixed(0); - } - return y; - - } - }] - } - }; - var chart = new ApexCharts(document.querySelector("#projects-overview-chart"), options); - chart.render(); -} - -//Radial chart data -var isApexSeriesData = {}; -var isApexSeries = document.querySelectorAll("[data-chart-series]"); -if (isApexSeries) { - Array.from(isApexSeries).forEach(function (element) { - var isApexSeriesVal = element.attributes; - if (isApexSeriesVal["data-chart-series"]) { - isApexSeriesData.series = isApexSeriesVal["data-chart-series"].value.toString(); - var radialbarhartoneColors = getChartColorsArray(isApexSeriesVal["id"].value.toString()); - var options = { - series: [isApexSeriesData.series], - - chart: { - type: 'radialBar', - width: 36, - height: 36, - sparkline: { - enabled: true - } - }, - dataLabels: { - enabled: false - }, - plotOptions: { - radialBar: { - hollow: { - margin: 0, - size: '50%' - }, - track: { - margin: 1 - }, - dataLabels: { - show: false - } - } - }, - colors: radialbarhartoneColors - }; - - var chart = new ApexCharts(document.querySelector("#" + isApexSeriesVal["id"].value.toString()), options); - chart.render(); - - } - }) -} - -// Project Status charts -var donutchartProjectsStatusColors = getChartColorsArray("prjects-status"); -if (donutchartProjectsStatusColors) { - var options = { - series: [125, 42, 58, 89], - labels: ["Completed", "In Progress", "Yet to Start", "Cancelled"], - chart: { - type: "donut", - height: 230, - }, - plotOptions: { - pie: { - size: 100, - offsetX: 0, - offsetY: 0, - donut: { - size: "90%", - labels: { - show: false, - } - }, - }, - }, - dataLabels: { - enabled: false, - }, - legend: { - show: false, - }, - stroke: { - lineCap: "round", - width: 0 - }, - colors: donutchartProjectsStatusColors, - }; - var chart = new ApexCharts(document.querySelector("#prjects-status"), options); - chart.render(); -} - -// chat-conversation -var scrollEl = new SimpleBar(document.getElementById('chat-conversation')); -scrollEl.getScrollElement().scrollTop = document.getElementById("users-conversation").scrollHeight; \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/datatables.init.js b/src/main/resources/static/assets/js/pages/datatables.init.js deleted file mode 100644 index f183d70..0000000 --- a/src/main/resources/static/assets/js/pages/datatables.init.js +++ /dev/null @@ -1,110 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: datatables init js -*/ - -document.addEventListener('DOMContentLoaded', function () { - let table = new DataTable('#example',); -}); - - -document.addEventListener('DOMContentLoaded', function () { - let table = new DataTable('#scroll-vertical', { - "scrollY": "210px", - "scrollCollapse": true, - "paging": false - }); - -}); - -document.addEventListener('DOMContentLoaded', function () { - let table = new DataTable('#scroll-horizontal', { - "scrollX": true - }); -}); - -document.addEventListener('DOMContentLoaded', function () { - let table = new DataTable('#alternative-pagination', { - "pagingType": "full_numbers" - }); -}); - -$(document).ready(function() { - var t = $('#add-rows').DataTable(); - var counter = 1; - - $('#addRow').on( 'click', function () { - t.row.add( [ - counter +'.1', - counter +'.2', - counter +'.3', - counter +'.4', - counter +'.5', - counter +'.6', - counter +'.7', - counter +'.8', - counter +'.9', - counter +'.10', - counter +'.11', - counter +'.12' - ] ).draw( false ); - - counter++; - } ); - - // Automatically add a first row of data - $('#addRow').click(); -}); - - -$(document).ready(function() { - $('#example').DataTable(); -}); - -//fixed header -document.addEventListener('DOMContentLoaded', function () { - let table = new DataTable('#fixed-header', { - "fixedHeader": true - }); - -}); - -//modal data datables -document.addEventListener('DOMContentLoaded', function () { - let table = new DataTable('#model-datatables', { - responsive: { - details: { - display: $.fn.dataTable.Responsive.display.modal( { - header: function ( row ) { - var data = row.data(); - return 'Details for '+data[0]+' '+data[1]; - } - } ), - renderer: $.fn.dataTable.Responsive.renderer.tableAll( { - tableClass: 'table' - } ) - } - } - }); - -}); - -//buttons exmples -document.addEventListener('DOMContentLoaded', function () { - let table = new DataTable('#buttons-datatables', { - dom: 'Bfrtip', - buttons: [ - 'copy', 'csv', 'excel', 'print', 'pdf' - ] - }); -}); - -//buttons exmples -document.addEventListener('DOMContentLoaded', function () { - let table = new DataTable('#ajax-datatables', { - "ajax": 'assets/json/datatable.json' - }); -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/echarts.init.js b/src/main/resources/static/assets/js/pages/echarts.init.js deleted file mode 100644 index 850ce2a..0000000 --- a/src/main/resources/static/assets/js/pages/echarts.init.js +++ /dev/null @@ -1,1777 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Echarts Init Js File -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - -// line chart -var chartLineColors = getChartColorsArray("chart-line"); -if (chartLineColors) { - var chartDom = document.getElementById('chart-line'); - var myChart = echarts.init(chartDom); - var option; - option = { - grid: { - left: '0%', - right: '0%', - bottom: '0%', - top: '4%', - containLabel: true - }, - xAxis: { - type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - }, - yAxis: { - type: 'value', - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - series: [{ - data: [150, 230, 224, 218, 135, 147, 260], - type: 'line' - }], - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - color: chartLineColors - }; - - if (option && typeof option === "object") { - option && myChart.setOption(option); - } -} - -// line stacked charts -var chartLineStackedColors = getChartColorsArray("chart-line-stacked"); -if (chartLineStackedColors) { - var chartDom = document.getElementById('chart-line-stacked'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: { - trigger: 'axis' - }, - legend: { - data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine'], - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - grid: { - left: '0%', - right: '0%', - bottom: '0%', - containLabel: true - }, - toolbox: { - feature: { - saveAsImage: {} - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - xAxis: { - type: 'category', - boundaryGap: false, - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - }, - yAxis: { - type: 'value', - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - series: [{ - name: 'Email', - type: 'line', - stack: 'Total', - data: [120, 132, 101, 134, 90, 230, 210], - }, - { - name: 'Union Ads', - type: 'line', - stack: 'Total', - data: [220, 182, 191, 234, 290, 330, 310] - }, - { - name: 'Video Ads', - type: 'line', - stack: 'Total', - data: [150, 232, 201, 154, 190, 330, 410] - }, - { - name: 'Direct', - type: 'line', - stack: 'Total', - data: [320, 332, 301, 334, 390, 330, 320] - }, - { - name: 'Search Engine', - type: 'line', - stack: 'Total', - data: [820, 932, 901, 934, 1290, 1330, 1320] - } - ], - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - color: chartLineStackedColors - }; - - option && myChart.setOption(option); -} - -// area chart -var chartAreaColors = getChartColorsArray("chart-area"); -if (chartAreaColors) { - var chartDom = document.getElementById('chart-area'); - var myChart = echarts.init(chartDom); - var option; - - option = { - grid: { - left: '0%', - right: '0%', - bottom: '0%', - top: '4%', - containLabel: true - }, - xAxis: { - type: 'category', - boundaryGap: false, - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - }, - yAxis: { - type: 'value', - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - series: [{ - data: [820, 932, 901, 934, 1290, 1330, 1320], - type: 'line', - areaStyle: {} - }], - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - color: chartAreaColors[0], - backgroundColor: chartAreaColors[1], - }; - - option && myChart.setOption(option); -} - -// area stacked chart -var chartAreaStackedColors = getChartColorsArray("chart-area-stacked"); -if (chartAreaStackedColors) { - var chartDom = document.getElementById('chart-area-stacked'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'cross', - label: { - backgroundColor: '#6a7985' - } - } - }, - legend: { - data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine'], - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - toolbox: { - feature: { - saveAsImage: {} - } - }, - grid: { - left: '0%', - right: '0%', - bottom: '0%', - containLabel: true - }, - xAxis: [{ - type: 'category', - boundaryGap: false, - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - }], - yAxis: { - type: 'value', - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - color: chartAreaStackedColors, - series: [{ - name: 'Email', - type: 'line', - stack: 'Total', - areaStyle: {}, - emphasis: { - focus: 'series' - }, - data: [120, 132, 101, 134, 90, 230, 210] - }, - { - name: 'Union Ads', - type: 'line', - stack: 'Total', - areaStyle: {}, - emphasis: { - focus: 'series' - }, - data: [220, 182, 191, 234, 290, 330, 310] - }, - { - name: 'Video Ads', - type: 'line', - stack: 'Total', - areaStyle: {}, - emphasis: { - focus: 'series' - }, - data: [150, 232, 201, 154, 190, 330, 410] - }, - { - name: 'Direct', - type: 'line', - stack: 'Total', - areaStyle: {}, - emphasis: { - focus: 'series' - }, - data: [320, 332, 301, 334, 390, 330, 320] - }, - { - name: 'Search Engine', - type: 'line', - stack: 'Total', - label: { - show: true, - position: 'top' - }, - areaStyle: {}, - emphasis: { - focus: 'series' - }, - data: [820, 932, 901, 934, 1290, 1330, 1320] - } - ] - }; - - option && myChart.setOption(option); -} - -// chart-step-line -var chartStepLineColors = getChartColorsArray("chart-step-line"); -if (chartStepLineColors) { - var chartDom = document.getElementById('chart-step-line'); - var myChart = echarts.init(chartDom); - var option; - - option = { - - tooltip: { - trigger: 'axis' - }, - legend: { - data: ['Step Start', 'Step Middle', 'Step End'], - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - grid: { - left: '0%', - right: '0%', - bottom: '0%', - containLabel: true - }, - toolbox: { - feature: { - saveAsImage: {} - } - }, - xAxis: { - type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - }, - yAxis: { - type: 'value', - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - color: chartStepLineColors, - series: [{ - name: 'Step Start', - type: 'line', - step: 'start', - data: [120, 132, 101, 134, 90, 230, 210] - }, - { - name: 'Step Middle', - type: 'line', - step: 'middle', - data: [220, 282, 201, 234, 290, 430, 410] - }, - { - name: 'Step End', - type: 'line', - step: 'end', - data: [450, 432, 401, 454, 590, 530, 510] - } - ] - }; - - option && myChart.setOption(option); -} - -//chart-line-y-category -var chartLineYColors = getChartColorsArray("chart-line-y-category"); -if (chartLineYColors) { - var chartDom = document.getElementById('chart-line-y-category'); - var myChart = echarts.init(chartDom); - var option; - - option = { - legend: { - data: ['Altitude (km) vs. temperature (°C)'], - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - tooltip: { - trigger: 'axis', - formatter: 'Temperature :
    {b}km : {c}°C' - }, - grid: { - left: '1%', - right: '0%', - bottom: '0%', - containLabel: true - }, - xAxis: { - type: 'value', - axisLabel: { - formatter: '{value} °C' - }, - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - yAxis: { - type: 'category', - axisLine: { - onZero: false, - lineStyle: { - color: '#858d98' - }, - }, - axisLabel: { - formatter: '{value} km' - }, - boundaryGap: false, - data: ['0', '10', '20', '30', '40', '50', '60', '70', '80'], - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - color: chartLineYColors, - series: [{ - name: 'Altitude (km) vs. temperature (°C)', - type: 'line', - symbolSize: 10, - symbol: 'circle', - smooth: true, - lineStyle: { - width: 3, - shadowColor: 'rgba(0,0,0,0.3)', - shadowBlur: 10, - shadowOffsetY: 8 - }, - data: [15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5] - }] - }; - - option && myChart.setOption(option); -} - -// chart-bar -var chartBarColors = getChartColorsArray("chart-bar"); -if (chartBarColors) { - var chartDom = document.getElementById('chart-bar'); - var myChart = echarts.init(chartDom); - var option; - - option = { - grid: { - left: '0%', - right: '0%', - bottom: '0%', - top: '3%', - containLabel: true - }, - xAxis: { - type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - }, - yAxis: { - type: 'value', - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - color: chartBarColors, - series: [{ - data: [120, 200, 150, 80, 70, 110, 130], - type: 'bar', - showBackground: true, - backgroundStyle: { - color: 'rgba(180, 180, 180, 0.2)' - } - }] - }; - - option && myChart.setOption(option); -} - -// chart-bar-label-rotation -var app = {}; -var chartBarLabelRotationColors = getChartColorsArray("chart-bar-label-rotation"); -if (chartBarLabelRotationColors) { - var chartDom = document.getElementById('chart-bar-label-rotation'); - var myChart = echarts.init(chartDom); - var option; - - var posList = [ - 'left', - 'right', - 'top', - 'bottom', - 'inside', - 'insideTop', - 'insideLeft', - 'insideRight', - 'insideBottom', - 'insideTopLeft', - 'insideTopRight', - 'insideBottomLeft', - 'insideBottomRight' - ]; - app.configParameters = { - rotate: { - min: -90, - max: 90 - }, - align: { - options: { - left: 'left', - center: 'center', - right: 'right' - } - }, - verticalAlign: { - options: { - top: 'top', - middle: 'middle', - bottom: 'bottom' - } - }, - position: { - options: posList.reduce(function (map, pos) { - map[pos] = pos; - return map; - }, {}) - }, - distance: { - min: 0, - max: 100 - } - }; - app.config = { - rotate: 90, - align: 'left', - verticalAlign: 'middle', - position: 'insideBottom', - distance: 15, - onChange: function () { - var labelOption = { - rotate: app.config.rotate, - align: app.config.align, - verticalAlign: app.config.verticalAlign, - position: app.config.position, - distance: app.config.distance - }; - myChart.setOption({ - series: [{ - label: labelOption - }, - { - label: labelOption - }, - { - label: labelOption - }, - { - label: labelOption - } - ] - }); - } - }; - var labelOption = { - show: true, - position: app.config.position, - distance: app.config.distance, - align: app.config.align, - verticalAlign: app.config.verticalAlign, - rotate: app.config.rotate, - formatter: '{c} {name|{a}}', - fontSize: 16, - rich: { - name: {} - } - }; - option = { - grid: { - left: '0%', - right: '0%', - bottom: '0%', - containLabel: true - }, - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'shadow' - } - }, - legend: { - data: ['Forest', 'Steppe', 'Desert', 'Wetland'], - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - color: chartBarLabelRotationColors, - toolbox: { - show: true, - orient: 'vertical', - left: 'right', - top: 'center', - feature: { - mark: { - show: true - }, - dataView: { - show: true, - readOnly: false - }, - magicType: { - show: true, - type: ['line', 'bar', 'stack'] - }, - restore: { - show: true - }, - saveAsImage: { - show: true - } - } - }, - xAxis: [{ - type: 'category', - axisTick: { - show: false - }, - data: ['2012', '2013', '2014', '2015', '2016'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - }], - yAxis: { - type: 'value', - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - series: [{ - name: 'Forest', - type: 'bar', - barGap: 0, - label: labelOption, - emphasis: { - focus: 'series' - }, - data: [320, 332, 301, 334, 390] - }, - { - name: 'Steppe', - type: 'bar', - label: labelOption, - emphasis: { - focus: 'series' - }, - data: [220, 182, 191, 234, 290] - }, - { - name: 'Desert', - type: 'bar', - label: labelOption, - emphasis: { - focus: 'series' - }, - data: [150, 232, 201, 154, 190] - }, - { - name: 'Wetland', - type: 'bar', - label: labelOption, - emphasis: { - focus: 'series' - }, - data: [98, 77, 101, 99, 40] - } - ] - }; - - option && myChart.setOption(option); -} - -// chart-horizontal-bar -var chartBarHorizontalColors = getChartColorsArray("chart-horizontal-bar"); -if (chartBarHorizontalColors) { - var chartDom = document.getElementById('chart-horizontal-bar'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'shadow' - } - }, - legend: { - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - grid: { - left: '0%', - right: '4%', - bottom: '0%', - containLabel: true - }, - xAxis: { - type: 'value', - boundaryGap: [0, 0.01], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - yAxis: { - type: 'category', - data: ['Brazil', 'Indonesia', 'USA', 'India', 'China', 'World'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - color: chartBarHorizontalColors, - series: [{ - name: '2011', - type: 'bar', - data: [18203, 23489, 29034, 104970, 131744, 630230] - }, - { - name: '2012', - type: 'bar', - data: [19325, 23438, 31000, 121594, 134141, 681807] - } - ] - }; - - option && myChart.setOption(option); -} - -// chart-horizontal-bar-stacked -var chartBarStackedColors = getChartColorsArray("chart-horizontal-bar-stacked"); -if (chartBarStackedColors) { - var chartDom = document.getElementById('chart-horizontal-bar-stacked'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: { - trigger: 'axis', - axisPointer: { - // Use axis to trigger tooltip - type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow' - } - }, - legend: { - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - grid: { - left: '1%', - right: '3%', - bottom: '0%', - containLabel: true - }, - xAxis: { - type: 'value', - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - color: chartBarStackedColors, - yAxis: { - type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - series: [{ - name: 'Direct', - type: 'bar', - stack: 'total', - label: { - show: true - }, - emphasis: { - focus: 'series' - }, - data: [320, 302, 301, 334, 390, 330, 320] - }, - { - name: 'Mail Ad', - type: 'bar', - stack: 'total', - label: { - show: true - }, - emphasis: { - focus: 'series' - }, - data: [120, 132, 101, 134, 90, 230, 210] - }, - { - name: 'Affiliate Ad', - type: 'bar', - stack: 'total', - label: { - show: true - }, - emphasis: { - focus: 'series' - }, - data: [220, 182, 191, 234, 290, 330, 310] - }, - { - name: 'Video Ad', - type: 'bar', - stack: 'total', - label: { - show: true - }, - emphasis: { - focus: 'series' - }, - data: [150, 212, 201, 154, 190, 330, 410] - }, - { - name: 'Search Engine', - type: 'bar', - stack: 'total', - label: { - show: true - }, - emphasis: { - focus: 'series' - }, - data: [820, 832, 901, 934, 1290, 1330, 1320] - } - ] - }; - - option && myChart.setOption(option); -} - -// Pie charts -var chartPieColors = getChartColorsArray("chart-pie"); -if (chartPieColors) { - var chartDom = document.getElementById('chart-pie'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: { - trigger: 'item' - }, - legend: { - orient: 'vertical', - left: 'left', - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - color: chartPieColors, - series: [{ - name: 'Access From', - type: 'pie', - radius: '50%', - data: [{ - value: 1048, - name: 'Search Engine' - }, - { - value: 735, - name: 'Direct' - }, - { - value: 580, - name: 'Email' - }, - { - value: 484, - name: 'Union Ads' - }, - { - value: 300, - name: 'Video Ads' - } - ], - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - }], - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - }; - - option && myChart.setOption(option); -} - -// chart doughnut -var chartDoughnutColors = getChartColorsArray("chart-doughnut"); -if (chartDoughnutColors) { - var chartDom = document.getElementById('chart-doughnut'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: { - trigger: 'item' - }, - legend: { - top: '5%', - left: 'center', - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - color: chartDoughnutColors, - series: [{ - name: 'Access From', - type: 'pie', - radius: ['40%', '70%'], - avoidLabelOverlap: false, - label: { - show: false, - position: 'center' - }, - emphasis: { - label: { - show: true, - fontSize: '16', - fontWeight: 'bold' - } - }, - labelLine: { - show: false - }, - data: [{ - value: 1048, - name: 'Search Engine' - }, - { - value: 735, - name: 'Direct' - }, - { - value: 580, - name: 'Email' - }, - { - value: 484, - name: 'Union Ads' - }, - { - value: 300, - name: 'Video Ads' - } - ] - }], - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - }; - - option && myChart.setOption(option); -} - -// Basic Scatter Chart -var chartScatterColors = getChartColorsArray("chart-scatter"); -if (chartScatterColors) { - var chartDom = document.getElementById('chart-scatter'); - var myChart = echarts.init(chartDom); - var option; - - option = { - grid: { - left: '1%', - right: '0%', - bottom: '0%', - top: '2%', - containLabel: true - }, - xAxis: { - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - yAxis: { - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - series: [{ - symbolSize: 12, - data: [ - [10.0, 8.04], - [8.07, 6.95], - [13.0, 7.58], - [9.05, 8.81], - [11.0, 8.33], - [14.0, 7.66], - [13.4, 6.81], - [10.0, 6.33], - [14.0, 8.96], - [12.5, 6.82], - [9.15, 7.2], - [11.5, 7.2], - [3.03, 4.23], - [12.2, 7.83], - [2.02, 4.47], - [1.05, 3.33], - [4.05, 4.96], - [6.03, 7.24], - [12.0, 6.26], - [12.0, 8.84], - [7.08, 5.82], - [5.02, 5.68] - ], - type: 'scatter' - }], - color: chartScatterColors, - }; - - option && myChart.setOption(option); -} - -// chart-candlestick -var chartCandlestickColors = getChartColorsArray("chart-candlestick"); -if (chartCandlestickColors) { - var chartDom = document.getElementById('chart-candlestick'); - var myChart = echarts.init(chartDom); - var option; - - option = { - grid: { - left: '1%', - right: '0%', - bottom: '0%', - top: '2%', - containLabel: true - }, - xAxis: { - data: ['2017-10-24', '2017-10-25', '2017-10-26', '2017-10-27'], - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - yAxis: { - axisLine: { - lineStyle: { - color: '#858d98' - }, - }, - splitLine: { - lineStyle: { - color: "rgba(133, 141, 152, 0.1)" - } - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - series: [{ - type: 'candlestick', - data: [ - [20, 34, 10, 38], - [40, 35, 30, 50], - [31, 38, 33, 44], - [38, 15, 5, 42] - ], - itemStyle: { - normal: { - color: chartCandlestickColors[0], - color0: chartCandlestickColors[1], - borderColor: chartCandlestickColors[0], - borderColor0: chartCandlestickColors[1] - } - } - }] - }; - - option && myChart.setOption(option); -} - -// Graph chart -var chartGraphColors = getChartColorsArray("chart-graph"); -if (chartGraphColors) { - var chartDom = document.getElementById('chart-graph'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: {}, - animationDurationUpdate: 1500, - animationEasingUpdate: 'quinticInOut', - color: chartGraphColors, - series: [{ - type: 'graph', - layout: 'none', - symbolSize: 50, - roam: true, - label: { - show: true - }, - edgeSymbol: ['circle', 'arrow'], - edgeSymbolSize: [4, 10], - edgeLabel: { - fontSize: 20 - }, - data: [{ - name: 'Node 1', - x: 300, - y: 300 - }, - { - name: 'Node 2', - x: 800, - y: 300 - }, - { - name: 'Node 3', - x: 550, - y: 100 - }, - { - name: 'Node 4', - x: 550, - y: 500 - } - ], - // links: [], - links: [{ - source: 0, - target: 1, - symbolSize: [5, 20], - label: { - show: true - }, - lineStyle: { - width: 5, - curveness: 0.2 - } - }, - { - source: 'Node 2', - target: 'Node 1', - label: { - show: true - }, - lineStyle: { - curveness: 0.2 - } - }, - { - source: 'Node 1', - target: 'Node 3' - }, - { - source: 'Node 2', - target: 'Node 3' - }, - { - source: 'Node 2', - target: 'Node 4' - }, - { - source: 'Node 1', - target: 'Node 4' - } - ], - lineStyle: { - opacity: 0.9, - width: 2, - curveness: 0 - } - }], - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - }; - - option && myChart.setOption(option); -} - -// chart treemap -var chartTreemapColors = getChartColorsArray("chart-treemap"); -if (chartTreemapColors) { - var chartDom = document.getElementById('chart-treemap'); - var myChart = echarts.init(chartDom); - var option; - - option = { - color: chartTreemapColors, - series: [{ - type: 'treemap', - data: [{ - name: 'nodeA', - value: 10, - children: [{ - name: 'nodeAa', - value: 4 - }, - { - name: 'nodeAb', - value: 6 - } - ] - }, - { - name: 'nodeB', - value: 20, - children: [{ - name: 'nodeBa', - value: 20, - children: [{ - name: 'nodeBa1', - value: 20 - }] - }] - } - ] - }], - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - }; - - option && myChart.setOption(option); -} - -// chart-sunburst -var chartSunburstColors = getChartColorsArray("chart-sunburst"); -if (chartSunburstColors) { - var chartDom = document.getElementById('chart-sunburst'); - var myChart = echarts.init(chartDom); - var option; - - var data = [{ - name: 'Grandpa', - children: [{ - name: 'Uncle Leo', - value: 15, - children: [{ - name: 'Cousin Jack', - value: 2 - }, - { - name: 'Cousin Mary', - value: 5, - children: [{ - name: 'Jackson', - value: 2 - }] - }, - { - name: 'Cousin Ben', - value: 4 - } - ] - }, - { - name: 'Father', - value: 10, - children: [{ - name: 'Me', - value: 5 - }, - { - name: 'Brother Peter', - value: 1 - } - ] - } - ] - }, - { - name: 'Nancy', - children: [{ - name: 'Uncle Nike', - children: [{ - name: 'Cousin Betty', - value: 1 - }, - { - name: 'Cousin Jenny', - value: 2 - } - ] - }] - } - ]; - option = { - color: chartSunburstColors, - series: { - type: 'sunburst', - // emphasis: { - // focus: 'ancestor' - // }, - data: data, - radius: [0, '90%'], - label: { - rotate: 'radial' - } - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - }; - - option && myChart.setOption(option); -} - -// Parallel -var chartParallelColors = getChartColorsArray("chart-parallel"); -if (chartParallelColors) { - var chartDom = document.getElementById('chart-parallel'); - var myChart = echarts.init(chartDom); - var option; - - option = { - parallelAxis: [{ - dim: 0, - name: 'Price' - }, - { - dim: 1, - name: 'Net Weight' - }, - { - dim: 2, - name: 'Amount' - }, - { - dim: 3, - name: 'Score', - type: 'category', - data: ['Excellent', 'Good', 'OK', 'Bad'] - } - ], - grid: { - left: '0%', - right: '0%', - bottom: '0%', - top: '2%', - containLabel: true - }, - color: chartParallelColors, - series: { - type: 'parallel', - lineStyle: { - width: 4 - }, - data: [ - [12.99, 100, 82, 'Good'], - [9.99, 80, 77, 'OK'], - [20, 120, 60, 'Excellent'] - ] - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - }; - - option && myChart.setOption(option); -} - -// sankey chart -var chartSankeyColors = getChartColorsArray("chart-sankey"); -if (chartSankeyColors) { - var chartDom = document.getElementById('chart-sankey'); - var myChart = echarts.init(chartDom); - var option; - - option = { - color: chartSankeyColors, - series: { - type: 'sankey', - layout: 'none', - emphasis: { - focus: 'adjacency' - }, - data: [{ - name: 'a' - }, - { - name: 'b' - }, - { - name: 'a1' - }, - { - name: 'a2' - }, - { - name: 'b1' - }, - { - name: 'c' - } - ], - links: [{ - source: 'a', - target: 'a1', - value: 5 - }, - { - source: 'a', - target: 'a2', - value: 3 - }, - { - source: 'b', - target: 'b1', - value: 8 - }, - { - source: 'a', - target: 'b1', - value: 3 - }, - { - source: 'b1', - target: 'a1', - value: 1 - }, - { - source: 'b1', - target: 'c', - value: 2 - } - ] - }, - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - }; - - option && myChart.setOption(option); -} - -// funnel chart -var chartFunnelColors = getChartColorsArray("chart-sankey"); -if (chartFunnelColors) { - var chartDom = document.getElementById('chart-funnel'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: { - trigger: 'item', - formatter: '{a}
    {b} : {c}%' - }, - toolbox: { - feature: { - dataView: { - readOnly: false - }, - restore: {}, - saveAsImage: {} - } - }, - legend: { - data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order'], - textStyle: { //The style of the legend text - color: '#858d98', - }, - }, - color: chartFunnelColors, - series: [{ - name: 'Funnel', - type: 'funnel', - left: '10%', - top: 60, - bottom: 60, - width: '80%', - min: 0, - max: 100, - minSize: '0%', - maxSize: '100%', - sort: 'descending', - gap: 2, - label: { - show: true, - position: 'inside' - }, - labelLine: { - length: 10, - lineStyle: { - width: 1, - type: 'solid' - } - }, - itemStyle: { - borderColor: '#fff', - borderWidth: 1 - }, - emphasis: { - label: { - fontSize: 20 - } - }, - data: [{ - value: 60, - name: 'Visit' - }, - { - value: 40, - name: 'Inquiry' - }, - { - value: 20, - name: 'Order' - }, - { - value: 80, - name: 'Click' - }, - { - value: 100, - name: 'Show' - } - ] - }], - textStyle: { - fontFamily: 'Poppins, sans-serif' - }, - }; - - option && myChart.setOption(option); -} - -// Simple Gauge -var chartGaugeColors = getChartColorsArray("chart-gauge"); -if (chartGaugeColors) { - var chartDom = document.getElementById('chart-gauge'); - var myChart = echarts.init(chartDom); - var option; - - option = { - tooltip: { - formatter: '{a}
    {b} : {c}%' - }, - color: chartGaugeColors, - textStyle: { - fontFamily: 'Poppins, sans-serif', - }, - series: [{ - name: 'Pressure', - type: 'gauge', - progress: { - show: true - }, - detail: { - valueAnimation: true, - formatter: '{value}', - color: '#858d98', - }, - axisLabel: { - color: '#858d98', - }, - data: [{ - title: { - color: '#858d98', - }, - value: 50, - name: 'SCORE', - }] - }] - }; - - option && myChart.setOption(option); -} - -// Calendar Heatmap -var chartHeatmapColors = getChartColorsArray("chart-heatmap"); -if (chartHeatmapColors) { - var chartDom = document.getElementById('chart-heatmap'); - var myChart = echarts.init(chartDom); - var option; - - function getVirtulData(year) { - year = year || '2017'; - var date = +echarts.number.parseDate(year + '-01-01'); - var end = +echarts.number.parseDate(year + '-12-31'); - var dayTime = 3600 * 24 * 1000; - var data = []; - for (var time = date; time <= end; time += dayTime) { - data.push([ - echarts.format.formatTime('yyyy-MM-dd', time), - Math.floor(Math.random() * 10000) - ]); - } - return data; - } - option = { - visualMap: { - show: false, - min: 0, - max: 10000, - }, - calendar: { - range: '2017' - }, - color: chartHeatmapColors, - textStyle: { - fontFamily: 'Poppins, sans-serif', - }, - series: { - type: 'heatmap', - coordinateSystem: 'calendar', - data: getVirtulData('2017'), - }, - }; - - option && myChart.setOption(option); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/ecommerce-cart.init.js b/src/main/resources/static/assets/js/pages/ecommerce-cart.init.js deleted file mode 100644 index 2f9feed..0000000 --- a/src/main/resources/static/assets/js/pages/ecommerce-cart.init.js +++ /dev/null @@ -1,70 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Ecommerce cart Js File -*/ - - -var taxRate = 0.125; -var shippingRate = 65.00; -var discountRate = 0.15; - -var currencySign = "$"; - -function recalculateCart() { - - var subtotal = 0; - - Array.from(document.getElementsByClassName("product")).forEach(function (item) { - Array.from(item.getElementsByClassName('product-line-price')).forEach(function (e) { - subtotal += parseFloat(e.innerHTML); - }); - }); - - /* Calculate totals */ - var tax = subtotal * taxRate; - var discount = subtotal * discountRate; - - var shipping = (subtotal > 0 ? shippingRate : 0); - var total = subtotal + tax + shipping - discount; - - document.getElementById("cart-subtotal").innerHTML = currencySign + subtotal.toFixed(2); - document.getElementById("cart-tax").innerHTML = currencySign + tax.toFixed(2); - document.getElementById("cart-shipping").innerHTML = currencySign + shipping.toFixed(2); - document.getElementById("cart-total").innerHTML = currencySign + total.toFixed(2); - document.getElementById("cart-discount").innerHTML = "-" + currencySign + discount.toFixed(2); -} - -function updateQuantity(quantityInput) { - var productRow = quantityInput.closest('.product'); - var price; - if (productRow || productRow.getElementsByClassName('product-price')) - Array.from(productRow.getElementsByClassName('product-price')).forEach(function (e) { - price = parseFloat(e.innerHTML); - }); - - if (quantityInput.previousElementSibling && quantityInput.previousElementSibling.classList.contains("product-quantity")) { - var quantity = quantityInput.previousElementSibling.value; - } else if (quantityInput.nextElementSibling && quantityInput.nextElementSibling.classList.contains("product-quantity")) { - var quantity = quantityInput.nextElementSibling.value; - } - var linePrice = price * quantity; - /* Update line price display and recalc cart totals */ - Array.from(productRow.getElementsByClassName('product-line-price')).forEach(function (e) { - e.innerHTML = linePrice.toFixed(2); - recalculateCart(); - }); -} - -// Remove product from cart -var removeProduct = document.getElementById('removeItemModal') -if (removeProduct) - removeProduct.addEventListener('show.bs.modal', function (e) { - document.getElementById('remove-product').addEventListener('click', function (event) { - e.relatedTarget.closest('.product').remove(); - document.getElementById("close-modal").click(); - recalculateCart(); - }); - }); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/ecommerce-customer-list.init.js b/src/main/resources/static/assets/js/pages/ecommerce-customer-list.init.js deleted file mode 100644 index e46186c..0000000 --- a/src/main/resources/static/assets/js/pages/ecommerce-customer-list.init.js +++ /dev/null @@ -1,467 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: ecommerce customer Js File -*/ - - -// list js - -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; - for (var i = 0; i < checkboxes.length; i++) { - checkboxes[i].checked = this.checked; - if (checkboxes[i].checked) { - checkboxes[i].closest("tr").classList.add("table-active"); - } else { - checkboxes[i].closest("tr").classList.remove("table-active"); - } - } - - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; - }; -} - -var perPage = 8; -var editlist = false; - -//Table -var options = { - valueNames: [ - "id", - "customer_name", - "email", - "date", - "phone", - "status", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; - -// Init list -var customerList = new List("customerList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length == perPage) { - document.querySelector(".pagination.listjs-pagination").firstElementChild.children[0].click() - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -const xhttp = new XMLHttpRequest(); -xhttp.onload = function () { - var json_records = JSON.parse(this.responseText); - Array.from(json_records).forEach(raw => { - customerList.add({ - id: '#VZ'+raw.id+"", - customer_name: raw.customer_name, - email: raw.email, - date: raw.date, - phone: raw.phone, - status: isStatus(raw.status) - }); - customerList.sort('id', { order: "desc" }); - refreshCallbacks(); - }); - customerList.remove("id", '#VZ2101'); -} -xhttp.open("GET", "assets/json/customer-list.json"); -xhttp.send(); - -isCount = new DOMParser().parseFromString( - customerList.items.slice(-1)[0]._values.id, - "text/html" -); - -var isValue = isCount.body.firstElementChild.innerHTML; - -var idField = document.getElementById("id-field"), - customerNameField = document.getElementById("customername-field"), - emailField = document.getElementById("email-field"), - dateField = document.getElementById("date-field"), - phoneField = document.getElementById("phone-field"), - statusField = document.getElementById("status-field"), - addBtn = document.getElementById("add-btn"), - editBtn = document.getElementById("edit-btn"), - removeBtns = document.getElementsByClassName("remove-item-btn"), - editBtns = document.getElementsByClassName("edit-item-btn"); -refreshCallbacks(); - -function filterContact(isValue) { - var values_status = isValue; - customerList.filter(function (data) { - var statusFilter = false; - matchData = new DOMParser().parseFromString( - data.values().status, - "text/html" - ); - var status = matchData.body.firstElementChild.innerHTML; - if (status == "All" || values_status == "All") { - statusFilter = true; - } else { - statusFilter = status == values_status; - } - return statusFilter; - }); - - customerList.update(); -} - -function updateList() { - var values_status = document.querySelector("input[name=status]:checked").value; - - data = userList.filter(function (item) { - var statusFilter = false; - - if (values_status == "All") { - statusFilter = true; - } else { - statusFilter = item.values().sts == values_status; - } - return statusFilter; - }); - userList.update(); -}; - -document.getElementById("showModal").addEventListener("show.bs.modal", function (e) { - if (e.relatedTarget.classList.contains("edit-item-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Edit Customer"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Update"; - } else if (e.relatedTarget.classList.contains("add-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Add Customer"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Add Customer"; - } else { - document.getElementById("exampleModalLabel").innerHTML = "List Customer"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "none"; - } -}); -ischeckboxcheck(); - -document.getElementById("showModal").addEventListener("hidden.bs.modal", function () { - clearFields(); -}); - -document.querySelector("#customerList").addEventListener("click", function () { - ischeckboxcheck(); -}); - -var table = document.getElementById("customerTable"); -// save all tr -var tr = table.getElementsByTagName("tr"); -var trlist = table.querySelectorAll(".list tr"); - -function SearchData() { - - var isstatus = document.getElementById("idStatus").value; - var pickerVal = document.getElementById("datepicker-range").value; - - var date1 = pickerVal.split(" to ")[0]; - var date2 = pickerVal.split(" to ")[1]; - - customerList.filter(function (data) { - matchData = new DOMParser().parseFromString(data.values().status, 'text/html'); - var status = matchData.body.firstElementChild.innerHTML; - var statusFilter = false; - var dateFilter = false; - - if (status == 'all' || isstatus == 'all') { - statusFilter = true; - } else { - statusFilter = status == isstatus; - } - - if (new Date(data.values().date.slice(0, 12)) >= new Date(date1) && new Date(data.values().date.slice(0, 12)) <= new Date(date2)) { - dateFilter = true; - } else { - dateFilter = false; - } - - if (statusFilter && dateFilter) { - return statusFilter && dateFilter - } else if (statusFilter && pickerVal == "") { - return statusFilter - } else if (dateFilter && pickerVal == "") { - return dateFilter - } - }); - customerList.update(); -} - - -var count = 11; -var forms = document.querySelectorAll('.tablelist-form') -Array.prototype.slice.call(forms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - if (customerNameField.value !== "" && - emailField.value !== "" && - dateField.value !== "" && - phoneField.value !== "" && !editlist) { - customerList.add({ - id: '#VZ'+count+"", - customer_name: customerNameField.value, - email: emailField.value, - date: dateField.value, - phone: phoneField.value, - status: isStatus(statusField.value), - }); - customerList.sort('id', { order: "desc" }); - document.getElementById("close-modal").click(); - clearFields(); - refreshCallbacks(); - filterContact("All"); - count++; - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Customer inserted successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } else if ( - customerNameField.value !== "" && - emailField.value !== "" && - dateField.value !== "" && - phoneField.value !== "" && editlist - ){ - var editValues = customerList.get({ - id: idField.value, - }); - Array.from(editValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - x.values({ - id: ''+idField.value+"", - customer_name: customerNameField.value, - email: emailField.value, - date: dateField.value, - phone: phoneField.value, - status: isStatus(statusField.value), - }); - } - }); - document.getElementById("close-modal").click(); - clearFields(); - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Customer updated Successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } - } - }, false) -}) - -var statusVal = new Choices(statusField); - -function isStatus(val) { - switch (val) { - case "Active": - return ( - '' + - val + - "" - ); - case "Block": - return ( - '' + - val + - "" - ); - } -} - -function ischeckboxcheck() { - Array.from(document.getElementsByName("chk_child")).forEach(function (x) { - x.addEventListener("change", function (e) { - if (x.checked == true) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - - var checkedCount = document.querySelectorAll('[name="chk_child"]:checked').length; - if (e.target.closest("tr").classList.contains("table-active")) { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } - }); - }); -} - -function refreshCallbacks() { - if(removeBtns){ - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = customerList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - customerList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecord-close").click(); - }); - } - }); - }); - }); - } - - if(editBtns){ - Array.from(editBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = customerList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - editlist = true; - idField.value = selectedid; - customerNameField.value = x._values.customer_name; - emailField.value = x._values.email; - dateField.value = x._values.date; - phoneField.value = x._values.phone; - - if (statusVal) statusVal.destroy(); - statusVal = new Choices(statusField, { - searchEnabled: false - }); - val = new DOMParser().parseFromString(x._values.status, "text/html"); - var statusSelec = val.body.firstElementChild.innerHTML; - statusVal.setChoiceByValue(statusSelec); - - flatpickr("#date-field", { - enableTime: true, - dateFormat: "d M, Y", - defaultDate: x._values.date, - }); - } - }); - }); - }); - } -} - -function clearFields() { - customerNameField.value = ""; - emailField.value = ""; - dateField.value = ""; - phoneField.value = ""; -} - -function deleteMultiple() { - ids_array = []; - var items = document.getElementsByName('chk_child'); - for (i = 0; i < items.length; i++) { - if (items[i].checked == true) { - var trNode = items[i].parentNode.parentNode.parentNode; - var id = trNode.querySelector("td a").innerHTML; - ids_array.push(id); - } - } - if (typeof ids_array !== 'undefined' && ids_array.length > 0) { - Swal.fire({ - title: "Are you sure?", - text: "You won't be able to revert this!", - icon: "warning", - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - confirmButtonText: "Yes, delete it!", - buttonsStyling: false, - showCloseButton: true - }).then(function (result) { - if (result.value) { - for (i = 0; i < ids_array.length; i++) { - customerList.remove("id", `${ids_array[i]}`); - } - document.getElementById("remove-actions").style.display = 'none'; - document.getElementById("checkAll").checked = false; - Swal.fire({ - title: 'Deleted!', - text: 'Your data has been deleted.', - icon: 'success', - confirmButtonClass: 'btn btn-info w-xs mt-2', - buttonsStyling: false - }); - } - }); - } else { - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -} - -document.querySelector(".pagination-next").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; -}); -document.querySelector(".pagination-prev").addEventListener("click", function () { - (document.querySelector(".pagination.listjs-pagination")) ? (document.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/ecommerce-order.init.js b/src/main/resources/static/assets/js/pages/ecommerce-order.init.js deleted file mode 100644 index b3d5490..0000000 --- a/src/main/resources/static/assets/js/pages/ecommerce-order.init.js +++ /dev/null @@ -1,577 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Ecommerce-order Init Js File -*/ - -var str_dt = function formatDate(date) { - var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - var d = new Date(date), - time_s = (d.getHours() + ':' + d.getMinutes()); - var t = time_s.split(":"); - var hours = t[0]; - var minutes = t[1]; - var newformat = hours >= 12 ? 'PM' : 'AM'; - hours = hours % 12; - hours = hours ? hours : 12; - minutes = minutes < 10 ? '0' + minutes : minutes; - month = '' + monthNames[(d.getMonth())], - day = '' + d.getDate(), - year = d.getFullYear(); - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - return [day + " " + month+","+ year +" "+ hours + ':' + minutes + ' ' + newformat +""]; -}; - -var isChoiceEl = document.getElementById("idStatus"); -var choices = new Choices(isChoiceEl, { - searchEnabled: false, -}); - -var isPaymentEl = document.getElementById("idPayment"); -var choices = new Choices(isPaymentEl, { - searchEnabled: false, -}); - -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; - for (var i = 0; i < checkboxes.length; i++) { - checkboxes[i].checked = this.checked; - if (checkboxes[i].checked) { - checkboxes[i].closest("tr").classList.add("table-active"); - } else { - checkboxes[i].closest("tr").classList.remove("table-active"); - } - } - - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; - }; -} -var perPage = 8; -var editlist = false; - -//Table -var options = { - valueNames: [ - "id", - "customer_name", - "product_name", - "date", - "amount", - "payment", - "status", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2, - }), - ], -}; - -// Init list -var orderList = new List("orderList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - document.querySelector(".pagination-prev.disabled") ? - document.querySelector(".pagination-prev.disabled").classList.remove("disabled") : ""; - document.querySelector(".pagination-next.disabled") ? - document.querySelector(".pagination-next.disabled").classList.remove("disabled") : ""; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length == perPage) { - document.querySelector(".pagination.listjs-pagination").firstElementChild.children[0].click() - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - -const xhttp = new XMLHttpRequest(); -xhttp.onload = function () { - var json_records = JSON.parse(this.responseText); - Array.from(json_records).forEach(function(element){ - orderList.add({ - id: '#VZ'+element.id+'', - customer_name: element.customer_name, - product_name: element.product_name, - date: str_dt(element.date), - amount: element.amount, - payment:element.payment, - status: isStatus(element.status) - }); - orderList.sort('id', { order: "desc" }); - refreshCallbacks(); - }); - orderList.remove("id", `#VZ2101`); -} -xhttp.open("GET", "assets/json/orders-list.init.json"); -xhttp.send(); - -isCount = new DOMParser().parseFromString( - orderList.items.slice(-1)[0]._values.id, - "text/html" -); - -var isValue = isCount.body.firstElementChild.innerHTML; - -var idField = document.getElementById("orderId"), - customerNameField = document.getElementById("customername-field"), - productNameField = document.getElementById("productname-field"), - dateField = document.getElementById("date-field"), - amountField = document.getElementById("amount-field"), - paymentField = document.getElementById("payment-field"), - statusField = document.getElementById("delivered-status"), - addBtn = document.getElementById("add-btn"), - editBtn = document.getElementById("edit-btn"), - removeBtns = document.getElementsByClassName("remove-item-btn"), - editBtns = document.getElementsByClassName("edit-item-btn"); -refreshCallbacks(); -//filterOrder("All"); - -var tabEl = document.querySelectorAll('a[data-bs-toggle="tab"]'); -Array.from(tabEl).forEach(function (item) { - item.addEventListener("shown.bs.tab", function (event) { - filterOrder(event.target.id); - }); -}); - -function filterOrder(isValue) { - var values_status = isValue; - orderList.filter(function (data) { - var statusFilter = false; - matchData = new DOMParser().parseFromString( - data.values().status, - "text/html" - ); - var status = matchData.body.firstElementChild.innerHTML; - if (status == "All" || values_status == "All") { - statusFilter = true; - } else { - statusFilter = status == values_status; - } - return statusFilter; - }); - - orderList.update(); -} - -function updateList() { - var values_status = document.querySelector("input[name=status]:checked").value; - - data = userList.filter(function (item) { - var statusFilter = false; - - if (values_status == "All") { - statusFilter = true; - } else { - statusFilter = item.values().sts == values_status; - } - return statusFilter; - }); - userList.update(); -} - -document.getElementById("showModal").addEventListener("show.bs.modal", function (e) { - if (e.relatedTarget.classList.contains("edit-item-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Edit Order"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Update"; - } else if (e.relatedTarget.classList.contains("add-btn")) { - document.getElementById("modal-id").style.display = "none"; - document.getElementById("exampleModalLabel").innerHTML = "Add Order"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Add Order"; - } else { - document.getElementById("exampleModalLabel").innerHTML = "List Order"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "none"; - } -}); -ischeckboxcheck(); - -document.getElementById("showModal").addEventListener("hidden.bs.modal", function () { - clearFields(); -}); - -document.querySelector("#orderList").addEventListener("click", function () { - ischeckboxcheck(); -}); - -var table = document.getElementById("orderTable"); -// save all tr -var tr = table.getElementsByTagName("tr"); -var trlist = table.querySelectorAll(".list tr"); - -function SearchData() { - var isstatus = document.getElementById("idStatus").value; - var payment = document.getElementById("idPayment").value; - var pickerVal = document.getElementById("demo-datepicker").value; - - var date1 = pickerVal.split(" to ")[0]; - var date2 = pickerVal.split(" to ")[1]; - - orderList.filter(function (data) { - matchData = new DOMParser().parseFromString( - data.values().status, - "text/html" - ); - var status = matchData.body.firstElementChild.innerHTML; - var statusFilter = false; - var paymentFilter = false; - var dateFilter = false; - - if (status == "all" || isstatus == "all") { - statusFilter = true; - } else { - statusFilter = status == isstatus; - } - - if (data.values().payment == "all" || payment == "all") { - paymentFilter = true; - } else { - paymentFilter = data.values().payment == payment; - } - - if ( - new Date(data.values().date.slice(0, 12)) >= new Date(date1) && - new Date(data.values().date.slice(0, 12)) <= new Date(date2) - ) { - dateFilter = true; - } else { - dateFilter = false; - } - - if (statusFilter && paymentFilter && dateFilter) { - return statusFilter && paymentFilter && dateFilter; - } else if (statusFilter && paymentFilter && pickerVal == "") { - return statusFilter && paymentFilter; - } else if (paymentFilter && dateFilter && pickerVal == "") { - return paymentFilter && dateFilter; - } - }); - orderList.update(); -} - -var count = 13; -var forms = document.querySelectorAll('.tablelist-form') -Array.prototype.slice.call(forms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - if ( - customerNameField.value !== "" && - productNameField.value !== "" && - dateField.value !== "" && - amountField.value !== "" && - paymentField.value !== "" && !editlist - ) { - orderList.add({ - id: '#VZ'+count+"", - customer_name: customerNameField.value, - product_name: productNameField.value, - date: dateField.value, - amount: "$" + amountField.value, - payment: paymentField.value, - status: isStatus(statusField.value), - }); - orderList.sort('id', { order: "desc" }); - document.getElementById("close-modal").click(); - clearFields(); - refreshCallbacks(); - filterOrder("All"); - count++; - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Order inserted successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } else if ( - customerNameField.value !== "" && - productNameField.value !== "" && - dateField.value !== "" && - amountField.value !== "" && - paymentField.value !== "" && editlist - ){ - var editValues = orderList.get({ - id: idField.value, - }); - Array.from(editValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - x.values({ - id: ''+idField.value+"", - customer_name: customerNameField.value, - product_name: productNameField.value, - date: dateField.value.slice(0, 14) +'' +dateField.value.slice(14, 22), - amount: amountField.value, - payment: paymentField.value, - status: isStatus(statusField.value), - }); - } - }); - document.getElementById("close-modal").click(); - clearFields(); - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Order updated Successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } - } - }, false) - }); -var example = new Choices(paymentField); -var statusVal = new Choices(statusField); -var productnameVal = new Choices(productNameField); - -function isStatus(val) { - switch (val) { - case "Delivered": - return ( - '' + - val + - "" - ); - case "Cancelled": - return ( - '' + - val + - "" - ); - case "Inprogress": - return ( - '' + - val + - "" - ); - case "Pickups": - return ( - '' + val + "" - ); - case "Returns": - return ( - '' + - val + - "" - ); - case "Pending": - return ( - '' + - val + - "" - ); - } -} - -function ischeckboxcheck() { - Array.from(document.getElementsByName("checkAll")).forEach(function (x) { - x.addEventListener("change", function (e) { - if (x.checked == true) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - - var checkedCount = document.querySelectorAll('[name="checkAll"]:checked').length; - if (e.target.closest("tr").classList.contains("table-active")) { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } - }); - }); -} - -function refreshCallbacks() { - if (removeBtns){ - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = orderList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - orderList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecord-close").click(); - }); - } - }); - }); - }); - } - - if (editBtns){ - Array.from(editBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = orderList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - editlist = true; - idField.value = selectedid; - customerNameField.value = x._values.customer_name; - productNameField.value = x._values.product_name; - dateField.value = x._values.date; - amountField.value = x._values.amount; - - if (example) example.destroy(); - example = new Choices(paymentField, { - searchEnabled: false - }); - var selected = x._values.payment; - example.setChoiceByValue(selected); - - if (productnameVal) productnameVal.destroy(); - productnameVal = new Choices(productNameField, { - searchEnabled: false, - }); - var selectedproduct = x._values.product_name; - productnameVal.setChoiceByValue(selectedproduct); - - if (statusVal) statusVal.destroy(); - statusVal = new Choices(statusField, { - searchEnabled: false - }); - val = new DOMParser().parseFromString(x._values.status, "text/html"); - var statusSelec = val.body.firstElementChild.innerHTML; - statusVal.setChoiceByValue(statusSelec); - - flatpickr("#date-field", { - enableTime: true, - dateFormat: "d M, Y, h:i K", - defaultDate: x._values.date, - }); - } - }); - }); - }); - } -} - -function clearFields() { - - customerNameField.value = ""; - productNameField.value = ""; - dateField.value = ""; - amountField.value = ""; - paymentField.value = ""; - - if (example) example.destroy(); - example = new Choices(paymentField); - - if (productnameVal) productnameVal.destroy(); - productnameVal = new Choices(productNameField); - - if (statusVal) statusVal.destroy(); - statusVal = new Choices(statusField); -} - -document.querySelector(".pagination-next").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click() : "" : ""; -}); -document.querySelector(".pagination-prev").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click() : "" : ""; -}); - -// Delete Multiple Records -function deleteMultiple(){ - ids_array = []; - var items = document.querySelectorAll('.form-check [value=option1]'); - for (i = 0; i < items.length; i++) { - if (items[i].checked == true) { - var trNode = items[i].parentNode.parentNode.parentNode; - var id = trNode.querySelector("td a").innerHTML; - ids_array.push(id); - } - } - if (typeof ids_array !== 'undefined' && ids_array.length > 0) { - Swal.fire({ - title: "Are you sure?", - text: "You won't be able to revert this!", - icon: "warning", - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - confirmButtonText: "Yes, delete it!", - buttonsStyling: false, - showCloseButton: true - }).then(function (result) { - if (result.value) { - for (i = 0; i < ids_array.length; i++) { - orderList.remove("id", `` + ids_array[i] +``); - } - document.getElementById("remove-actions").style.display = 'none'; - document.getElementById("checkAll").checked = false; - Swal.fire({ - title: 'Deleted!', - text: 'Your data has been deleted.', - icon: 'success', - confirmButtonClass: 'btn btn-info w-xs mt-2', - buttonsStyling: false - }); - } - }); - } else { - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/ecommerce-product-checkout.init.js b/src/main/resources/static/assets/js/pages/ecommerce-product-checkout.init.js deleted file mode 100644 index ddf072d..0000000 --- a/src/main/resources/static/assets/js/pages/ecommerce-product-checkout.init.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Ecommerce product Js File -*/ - - -// Chocies Select plugin -document.addEventListener('DOMContentLoaded', function () { - var genericExamples = document.querySelectorAll('[data-plugin="choices"]'); - if (genericExamples) { - Array.from(genericExamples).forEach(function (genericExamp) { - var element = genericExamp; - new Choices(element, { - placeholderValue: 'This is a placeholder set in the config', - searchPlaceholderValue: 'Search results here', - }); - }); - } -}); - -// Checkout nav tab -var CheckoutTab = document.querySelectorAll(".checkout-tab"); -if (CheckoutTab) { - Array.from(document.querySelectorAll(".checkout-tab")).forEach(function (form) { - - // next tab - var NextTab = form.querySelectorAll(".nexttab"); - if (NextTab) { - Array.from(form.querySelectorAll(".nexttab")).forEach(function (nextButton) { - var tabEl = form.querySelectorAll('button[data-bs-toggle="pill"]'); - if (tabEl) { - Array.from(tabEl).forEach(function (item) { - item.addEventListener('show.bs.tab', function (event) { - event.target.classList.add('done'); - }); - }); - nextButton.addEventListener("click", function () { - var nextTab = nextButton.getAttribute('data-nexttab'); - if (nextTab) { - document.getElementById(nextTab).click(); - } - }); - } - - }); - } - - //Pervies tab - var previesTab = document.querySelectorAll(".previestab"); - if (previesTab) { - Array.from(form.querySelectorAll(".previestab")).forEach(function (prevButton) { - - prevButton.addEventListener("click", function () { - var prevTab = prevButton.getAttribute('data-previous'); - if (prevTab) { - var totalDone = prevButton.closest("form").querySelectorAll(".custom-nav .done").length; - if (totalDone) { - for (var i = totalDone - 1; i < totalDone; i++) { - (prevButton.closest("form").querySelectorAll(".custom-nav .done")[i]) ? prevButton.closest("form").querySelectorAll(".custom-nav .done")[i].classList.remove('done'): ''; - } - document.getElementById(prevTab).click(); - } - } - }); - }); - } - - // Step number click - var tabButtons = form.querySelectorAll('button[data-bs-toggle="pill"]'); - if (tabButtons) { - Array.from(tabButtons).forEach(function (button, i) { - button.setAttribute("data-position", i); - button.addEventListener("click", function () { - (form.querySelectorAll(".custom-nav .done").length > 0) ? - Array.from(form.querySelectorAll(".custom-nav .done")).forEach(function (doneTab) { - doneTab.classList.remove('done'); - }): ''; - for (var j = 0; j <= i; j++) { - tabButtons[j].classList.contains('active') ? tabButtons[j].classList.remove('done') : tabButtons[j].classList.add('done'); - } - }); - }); - } - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/ecommerce-product-create.init.js b/src/main/resources/static/assets/js/pages/ecommerce-product-create.init.js deleted file mode 100644 index 9496cdc..0000000 --- a/src/main/resources/static/assets/js/pages/ecommerce-product-create.init.js +++ /dev/null @@ -1,187 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Ecommerce product create Js File -*/ - -// ckeditor -itemid = 13; -ClassicEditor - .create(document.querySelector('#ckeditor-classic')) - .then(function (editor) { - editor.ui.view.editable.element.style.height = '200px'; - }) - .catch(function (error) { - console.error(error); - }); - -// Dropzone -var dropzonePreviewNode = document.querySelector("#dropzone-preview-list"); -dropzonePreviewNode.itemid = ""; -var previewTemplate = dropzonePreviewNode.parentNode.innerHTML; -dropzonePreviewNode.parentNode.removeChild(dropzonePreviewNode); -var dropzone = new Dropzone(".dropzone", { - url: 'https://httpbin.org/post', - method: "post", - previewTemplate: previewTemplate, - previewsContainer: "#dropzone-preview", -}); - -// Form Event -(function () { - 'use strict' - - // Fetch all the forms we want to apply custom Bootstrap validation styles to - var forms = document.querySelectorAll('.needs-validation') - - // date & time - var date = new Date().toUTCString().slice(5, 16); - function currentTime() { - var ampm = new Date().getHours() >= 12 ? "PM" : "AM"; - var hour = - new Date().getHours() > 12 - ? new Date().getHours() % 12 - : new Date().getHours(); - var minute = - new Date().getMinutes() < 10 - ? "0" + new Date().getMinutes() - : new Date().getMinutes(); - if (hour < 10) { - return "0" + hour + ":" + minute + " " + ampm; - } else { - return hour + ":" + minute + " " + ampm; - } - } - setInterval(currentTime, 1000); - - // product image - document.querySelector("#product-image-input").addEventListener("change", function () { - var preview = document.querySelector("#product-img"); - var file = document.querySelector("#product-image-input").files[0]; - var reader = new FileReader(); - reader.addEventListener("load",function () { - preview.src = reader.result; - },false); - if (file) { - reader.readAsDataURL(file); - } - }); - - - - // choices category input - var prdoctCategoryInput = new Choices('#choices-category-input', { - searchEnabled: false, - }); - - var editinputValueJson = sessionStorage.getItem('editInputValue'); - if (editinputValueJson) { - var editinputValueJson = JSON.parse(editinputValueJson); - document.getElementById("formAction").value = "edit"; - document.getElementById("product-id-input").value = editinputValueJson.id; - document.getElementById("product-img").src = editinputValueJson.product.img; - document.getElementById("product-title-input").value = editinputValueJson.product.title; - document.getElementById("stocks-input").value = editinputValueJson.stock; - document.getElementById("product-price-input").value = editinputValueJson.price; - document.getElementById("orders-input").value = editinputValueJson.orders; - prdoctCategoryInput.setChoiceByValue(editinputValueJson.product.category); - } - - - // Loop over them and prevent submission - Array.prototype.slice.call(forms) - .forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - - itemid++; - var productItemID = itemid; - var productTitleValue = document.getElementById("product-title-input").value; - var prdoctCategoryValue = prdoctCategoryInput.getValue(true); - var stockInputValue = document.getElementById("stocks-input").value; - var orderValue = document.getElementById("orders-input").value; - var productPriceValue = document.getElementById("product-price-input").value; - var productImageValue = document.getElementById("product-img").src; - - var formAction = document.getElementById("formAction").value; - if (formAction == "add") { - if (sessionStorage.getItem('inputValue') != null) { - var inputValueJson = JSON.parse(sessionStorage.getItem('inputValue')); - var newObj = { - "id": productItemID+1, - "product": { - "img": productImageValue, - "title": productTitleValue, - "category": prdoctCategoryValue - }, - "stock": stockInputValue, - "price": productPriceValue, - "orders": orderValue, - "rating": "--", - "published": { - "publishDate": date, - "publishTime": currentTime() - } - }; - inputValueJson.push(newObj); - sessionStorage.setItem('inputValue', JSON.stringify(inputValueJson)); - } else { - var inputValueJson = []; - var newObj = { - "id": productItemID, - "product": { - "img": productImageValue, - "title": productTitleValue, - "category": prdoctCategoryValue - }, - "stock": stockInputValue, - "price": productPriceValue, - "orders": orderValue, - "rating": "--", - "published": { - "publishDate": date, - "publishTime": currentTime() - } - }; - inputValueJson.push(newObj); - sessionStorage.setItem('inputValue', JSON.stringify(inputValueJson)); - } - } else if (formAction == "edit") { - var editproductId = document.getElementById("product-id-input").value; - if (sessionStorage.getItem('editInputValue')) { - var editObj = { - "id": parseInt(editproductId), - "product": { - "img": productImageValue, - "title": productTitleValue, - "category": prdoctCategoryValue - }, - "stock": stockInputValue, - "price": productPriceValue, - "orders": orderValue, - "rating": editinputValueJson.rating, - "published": { - "publishDate": date, - "publishTime": currentTime() - } - }; - sessionStorage.setItem('editInputValue', JSON.stringify(editObj)); - } - } else { - console.log('Form Action Not Found.'); - } - window.location.replace("apps-ecommerce-products.html"); - return false; - } - - form.classList.add('was-validated'); - - }, false) - }) -})() \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/ecommerce-product-details.init.js b/src/main/resources/static/assets/js/pages/ecommerce-product-details.init.js deleted file mode 100644 index a51a2c0..0000000 --- a/src/main/resources/static/assets/js/pages/ecommerce-product-details.init.js +++ /dev/null @@ -1,26 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Ecommerce product Details Js File -*/ - -var productNavSlider = new Swiper(".product-nav-slider", { - loop: false, - spaceBetween: 10, - slidesPerView: 4, - freeMode: true, - watchSlidesProgress: true, -}); -var productThubnailSlider = new Swiper(".product-thumbnail-slider", { - loop: false, - spaceBetween: 24, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - thumbs: { - swiper: productNavSlider, - }, -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/ecommerce-product-list.init.js b/src/main/resources/static/assets/js/pages/ecommerce-product-list.init.js deleted file mode 100644 index 37f056d..0000000 --- a/src/main/resources/static/assets/js/pages/ecommerce-product-list.init.js +++ /dev/null @@ -1,775 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Ecommerce product list Js File -*/ - - - -// table-product-list-all -var productListAllData = [ - { - "id": 1, - "product": { - "img": "assets/images/products/img-1.png", - "title": "Half Sleeve Round Neck T-Shirts", - "category": "Fashion" - }, - "stock": "12", - "price": "215.00", - "orders": "48", - "rating": "4.2", - "published": { - "publishDate": "12 Oct, 2021", - "publishTime": "10:05 AM", - } - }, - { - "id": 2, - "product": { - "img": "assets/images/products/img-2.png", - "title": "Urban Ladder Pashe Chair", - "category": "Furniture" - }, - "stock": "06", - "price": "160.00", - "orders": "30", - "rating": "4.3", - "published": { - "publishDate": "06 Jan, 2021", - "publishTime": "01:31 PM", - } - }, - { - "id": 3, - "product": { - "img": "assets/images/products/img-3.png", - "title": "350 ml Glass Grocery Container", - "category": "Grocery" - }, - "stock": "10", - "price": "125.00", - "orders": "48", - "rating": "4.5", - "published": { - "publishDate": "26 Mar, 2021", - "publishTime": "11:40 AM", - } - }, - { - "id": 4, - "product": { - "img": "assets/images/products/img-4.png", - "title": "Fabric Dual Tone Living Room Chair", - "category": "Furniture" - }, - "stock": "15", - "price": "340.00", - "orders": "40", - "rating": "4.2", - "published": { - "publishDate": "19 Apr, 2021", - "publishTime": "02:51 PM", - } - }, - { - "id": 5, - "product": { - "img": "assets/images/products/img-5.png", - "title": "Crux Motorsports Helmet", - "category": "Automotive Accessories" - }, - "stock": "08", - "price": "175.00", - "orders": "55", - "rating": "4.4", - "published": { - "publishDate": "30 Mar, 2021", - "publishTime": "09:42 AM", - } - }, - { - "id": 6, - "product": { - "img": "assets/images/products/img-6.png", - "title": "Half Sleeve T-Shirts (Blue)", - "category": "Fashion" - }, - "stock": "15", - "price": "225.00", - "orders": "48", - "rating": "4.2", - "published": { - "publishDate": "12 Oct, 2021", - "publishTime": "04:55 PM", - } - }, - { - "id": 7, - "product": { - "img": "assets/images/products/img-7.png", - "title": "Noise Evolve Smartwatch", - "category": "Watches" - }, - "stock": "12", - "price": "105.00", - "orders": "45", - "rating": "4.3", - "published": { - "publishDate": "15 May, 2021", - "publishTime": "03:40 PM", - } - }, - { - "id": 8, - "product": { - "img": "assets/images/products/img-8.png", - "title": "Sweatshirt for Men (Pink)", - "category": "Fashion" - }, - "stock": "20", - "price": "120.00", - "orders": "48", - "rating": "4.2", - "published": { - "publishDate": "21 Jun, 2021", - "publishTime": "12:18 PM", - } - }, - { - "id": 9, - "product": { - "img": "assets/images/products/img-9.png", - "title": "Reusable Ecological Coffee Cup", - "category": "Grocery" - }, - "stock": "14", - "price": "325.00", - "orders": "55", - "rating": "4.3", - "published": { - "publishDate": "15 Jan, 2021", - "publishTime": "10:29 PM", - } - }, - { - "id": 10, - "product": { - "img": "assets/images/products/img-10.png", - "title": "Travel Carrying Pouch Bag", - "category": "Kids" - }, - "stock": "20", - "price": "180.00", - "orders": "60", - "rating": "4.3", - "published": { - "publishDate": "15 Jun, 2021", - "publishTime": "03:51 PM", - } - }, - { - "id": 11, - "product": { - "img": "assets/images/products/img-1.png", - "title": "Half Sleeve Round Neck T-Shirts", - "category": "Fashion" - }, - "stock": "12", - "price": "215.00", - "orders": "48", - "rating": "4.2", - "published": { - "publishDate": "12 Oct, 2021", - "publishTime": "10:05 AM", - } - }, - { - "id": 12, - "product": { - "img": "assets/images/products/img-2.png", - "title": "Urban Ladder Pashe Chair", - "category": "Furniture" - }, - "stock": "06", - "price": "160.00", - "orders": "30", - "rating": "4.3", - "published": { - "publishDate": "06 Jan, 2021", - "publishTime": "01:31 PM", - } - } -]; - -var inputValueJson = sessionStorage.getItem('inputValue'); -if (inputValueJson) { - inputValueJson = JSON.parse(inputValueJson); - Array.from(inputValueJson).forEach(element => { - productListAllData.unshift(element); - }); -} - -var editinputValueJson = sessionStorage.getItem('editInputValue'); -if(editinputValueJson){ - editinputValueJson = JSON.parse(editinputValueJson); - productListAllData = productListAllData.map(function (item) { - if (item.id == editinputValueJson.id) { - return editinputValueJson; - } - return item; - }); -} -document.getElementById("addproduct-btn").addEventListener("click", function(){ - sessionStorage.setItem('editInputValue',"") -}) - -var productListAll = new gridjs.Grid({ - columns: - [ - { - name: '#', - width: '40px', - sort: { - enabled: false - }, - data: (function (row) { - return gridjs.html('
    \ - \ - \ -
    '); - }) - }, - { - name: 'Product', - width: '360px', - data: (function (row) { - return gridjs.html('
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + row.product.title + '
    ' + - '

    Category : ' + row.product.category + '

    ' + - '
    ' + - '
    '); - }) - }, - { - name: 'Stock', - width: '94px', - }, - { - name: 'Price', - width: '101px', - formatter: (function (cell) { - return gridjs.html('$' + cell); - }) - }, - { - name: 'Orders', - width: '84px', - }, - { - name: 'Rating', - width: '105px', - formatter: (function (cell) { - return gridjs.html('' + cell + ''); - }) - }, - { - name: 'Published', - width: '220px', - data: (function (row) { - return gridjs.html(row.published.publishDate + '' + row.published.publishTime + ''); - }) - }, - { - name: "Action", - width: '80px', - sort: { - enabled: false - }, - formatter: (function (cell, row) { - var x = new DOMParser().parseFromString(row._cells[0].data.props.content, "text/html").body.querySelector(".checkbox-product-list .form-check-input").value - return gridjs.html(''); - }) - } - ], - className: { - th: 'text-muted', - }, - pagination: { - limit: 10 - }, - sort: true, - data: productListAllData -}).render(document.getElementById("table-product-list-all")); - -// table-product-list-published -var productListPublishedData = [ - { - "id": 1, - "product": { - "img": "assets/images/products/img-2.png", - "title": "Urban Ladder Pashe Chair", - "category": "Furniture" - }, - "stock": "06", - "price": "160.00", - "orders": "30", - "rating": "4.3", - "published": { - "publishDate": "06 Jan, 2021", - "publishTime": "01:31 PM", - } - },{ - "id": 2, - "product": { - "img": "assets/images/products/img-6.png", - "title": "Half Sleeve T-Shirts (Blue)", - "category": "Fashion" - }, - "stock": "15", - "price": "125.00", - "orders": "48", - "rating": "4.2", - "published": { - "publishDate": "12 Oct, 2021", - "publishTime": "04:55 PM", - } - },{ - "id": 3, - "product": { - "img": "assets/images/products/img-4.png", - "title": "Fabric Dual Tone Living Room Chair", - "category": "Furniture" - }, - "stock": "15", - "price": "140.00", - "orders": "40", - "rating": "4.2", - "published": { - "publishDate": "19 Apr, 2021", - "publishTime": "02:51 PM", - } - },{ - "id": 4, - "product": { - "img": "assets/images/products/img-4.png", - "title": "350 ml Glass Grocery Container", - "category": "Grocery" - }, - "stock": "10", - "price": "125.00", - "orders": "48", - "rating": "4.5", - "published": { - "publishDate": "26 Mar, 2021", - "publishTime": "11:40 AM", - } - },{ - "id": 5, - "product": { - "img": "assets/images/products/img-5.png", - "title": "Crux Motorsports Helmet", - "category": "Automotive Accessories" - }, - "stock": "08", - "price": "135.00", - "orders": "55", - "rating": "4.4", - "published": { - "publishDate": "30 Mar, 2021", - "publishTime": "09:42 AM", - } - } -] - -var productListPublished = new gridjs.Grid({ - columns: - [ - { - name: '#', - width: '40px', - sort: { - enabled: false - }, - formatter: (function (cell) { - return gridjs.html('
    \ - \ - \ -
    '); - }) - }, - { - name: 'Product', - width: '360px', - data: (function (row) { - return gridjs.html('
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + row.product.title + '
    ' + - '

    Category : ' + row.product.category + '

    ' + - '
    ' + - '
    '); - }) - }, - { - name: 'Stock', - width: '94px', - }, - { - name: 'Price', - width: '101px', - formatter: (function (cell) { - return gridjs.html('$' + cell); - }) - }, - { - name: 'Orders', - width: '84px', - }, - { - name: 'Rating', - width: '105px', - formatter: (function (cell) { - return gridjs.html('' + cell + ''); - }) - }, - { - name: 'Published', - width: '220px', - data: (function (row) { - return gridjs.html(row.published.publishDate + '' + row.published.publishTime + ''); - }) - }, - { - name: "Action", - width: '80px', - sort: { - enabled: false - }, - formatter: (function (cell, row) { - return gridjs.html(''); - }) - } - ], - className: { - th: 'text-muted', - }, - pagination: { - limit: 10 - }, - sort: true, - data: productListPublishedData -}).render(document.getElementById("table-product-list-published")); - - -// Search product list -var searchProductList = document.getElementById("searchProductList"); -searchProductList.addEventListener("keyup", function () { - var inputVal = searchProductList.value.toLowerCase(); - function filterItems(arr, query) { - return arr.filter(function (el) { - return el.product.title.toLowerCase().indexOf(query.toLowerCase()) !== -1 - }) - } - - var filterData = filterItems(productListAllData, inputVal); - var filterPublishData = filterItems(productListPublishedData, inputVal); - productListAll.updateConfig({ - data: filterData - }).forceRender(); - - productListPublished.updateConfig({ - data: filterPublishData - }).forceRender(); - checkRemoveItem(); -}); - -// mail list click event -Array.from(document.querySelectorAll('.filter-list a')).forEach(function (filteritem) { - filteritem.addEventListener("click", function () { - var filterListItem = document.querySelector(".filter-list a.active"); - if (filterListItem) filterListItem.classList.remove("active"); - filteritem.classList.add('active'); - - var filterItemValue = filteritem.querySelector(".listname").innerHTML - - var filterData = productListAllData.filter(filterlist => filterlist.product.category === filterItemValue); - var filterPublishedData = productListPublishedData.filter(filterlist => filterlist.product.category === filterItemValue); - - productListAll.updateConfig({ - data: filterData - }).forceRender(); - - productListPublished.updateConfig({ - data: filterPublishedData - }).forceRender(); - - checkRemoveItem(); - }); -}) - -// price range slider -var slider = document.getElementById('product-price-range'); - -noUiSlider.create(slider, { - start: [0, 2000], // Handle start position - step: 10, // Slider moves in increments of '10' - margin: 20, // Handles must be more than '20' apart - connect: true, // Display a colored bar between the handles - behaviour: 'tap-drag', // Move handle on tap, bar is draggable - range: { // Slider can select '0' to '100' - 'min': 0, - 'max': 2000 - }, - format: wNumb({ decimals: 0, prefix: '$ ' }) -}); - -var minCostInput = document.getElementById('minCost'), - maxCostInput = document.getElementById('maxCost'); - -var filterDataAll = ''; -var filterDataPublished = ''; - -// When the slider value changes, update the input and span -slider.noUiSlider.on('update', function (values, handle) { - var productListupdatedAll = productListAllData; - var productListupdatedPublished = productListPublishedData; - if (handle) { - maxCostInput.value = values[handle]; - - } else { - minCostInput.value = values[handle]; - } - - var maxvalue = maxCostInput.value.substr(2); - var minvalue = minCostInput.value.substr(2); - filterDataAll = productListupdatedAll.filter( - product => parseFloat(product.price) >= minvalue && parseFloat(product.price) <= maxvalue - ); - filterDataPublished = productListupdatedPublished.filter( - product => parseFloat(product.price) >= minvalue && parseFloat(product.price) <= maxvalue - ); - productListAll.updateConfig({ - data: filterDataAll - }).forceRender(); - productListPublished.updateConfig({ - data: filterDataPublished - }).forceRender(); - checkRemoveItem(); -}); - - -minCostInput.addEventListener('change', function () { - slider.noUiSlider.set([null, this.value]); -}); - -maxCostInput.addEventListener('change', function () { - slider.noUiSlider.set([null, this.value]); -}); - -// text inputs example -var filterChoicesInput = new Choices( - document.getElementById('filter-choices-input'), - { - addItems: true, - delimiter: ',', - editItems: true, - maxItemCount: 10, - removeItems: true, - removeItemButton: true, - } -) - -// sidebar filter check -Array.from(document.querySelectorAll(".filter-accordion .accordion-item")).forEach(function (item) { - var isFilterSelected = item.querySelectorAll(".filter-check .form-check .form-check-input:checked").length; - item.querySelector(".filter-badge").innerHTML = isFilterSelected; - Array.from(item.querySelectorAll(".form-check .form-check-input")).forEach(function (subitem) { - var checkElm = subitem.value; - if (subitem.checked) { - filterChoicesInput.setValue([checkElm]); - } - subitem.addEventListener("click", function (event) { - if (subitem.checked) { - isFilterSelected++; - item.querySelector(".filter-badge").innerHTML = isFilterSelected; - (isFilterSelected > 0) ? item.querySelector(".filter-badge").style.display = 'block' : item.querySelector(".filter-badge").style.display = 'none'; - filterChoicesInput.setValue([checkElm]); - - } else { - filterChoicesInput.removeActiveItemsByValue(checkElm); - } - }); - filterChoicesInput.passedElement.element.addEventListener('removeItem', function (event) { - if (event.detail.value == checkElm) { - subitem.checked = false; - isFilterSelected--; - item.querySelector(".filter-badge").innerHTML = isFilterSelected; - (isFilterSelected > 0) ? item.querySelector(".filter-badge").style.display = 'block' : item.querySelector(".filter-badge").style.display = 'none'; - } - }, false); - // clearall - document.getElementById("clearall").addEventListener("click", function () { - subitem.checked = false; - filterChoicesInput.removeActiveItemsByValue(checkElm); - isFilterSelected = 0; - item.querySelector(".filter-badge").innerHTML = isFilterSelected; - (isFilterSelected > 0) ? item.querySelector(".filter-badge").style.display = 'block' : item.querySelector(".filter-badge").style.display = 'none'; - productListAll.updateConfig({ - data: productListAllData - }).forceRender(); - - productListPublished.updateConfig({ - data: productListPublishedData - }).forceRender(); - }); - }); -}); - -// Search Brands Options -var searchBrandsOptions = document.getElementById("searchBrandsList"); -searchBrandsOptions.addEventListener("keyup", function () { - var inputVal = searchBrandsOptions.value.toLowerCase(); - var searchItem = document.querySelectorAll("#flush-collapseBrands .form-check"); - Array.from(searchItem).forEach(function (elem) { - var searchBrandsTxt = elem.getElementsByClassName("form-check-label")[0].innerText.toLowerCase(); - elem.style.display = searchBrandsTxt.includes(inputVal) ? "block" : "none"; - }) -}); - -// table select to remove -// checkbox-wrapper -var isSelected = 0; -function checkRemoveItem() { - var tabEl = document.querySelectorAll('a[data-bs-toggle="tab"]'); - Array.from(tabEl).forEach(function (el) { - el.addEventListener('show.bs.tab', function (event) { - isSelected = 0; - document.getElementById("selection-element").style.display = 'none'; - }); - }); - setTimeout(function () { - Array.from(document.querySelectorAll(".checkbox-product-list input")).forEach(function (item) { - item.addEventListener('click', function (event) { - if (event.target.checked == true) { - event.target.closest('tr').classList.add("gridjs-tr-selected"); - } else { - event.target.closest('tr').classList.remove("gridjs-tr-selected"); - } - - var checkboxes = document.querySelectorAll('.checkbox-product-list input:checked'); - isSelected = checkboxes.length; - - if (event.target.closest('tr').classList.contains("gridjs-tr-selected")) { - document.getElementById("select-content").innerHTML = isSelected; - (isSelected > 0) ? document.getElementById("selection-element").style.display = 'block' : document.getElementById("selection-element").style.display = 'none'; - } else { - - document.getElementById("select-content").innerHTML = isSelected; - (isSelected > 0) ? document.getElementById("selection-element").style.display = 'block' : document.getElementById("selection-element").style.display = 'none'; - } - }); - }); - removeItems(); - removeSingleItem(); - }, 100); -} - - -// check to remove item -var checkboxes = document.querySelectorAll('.checkbox-wrapper-mail input'); -function removeItems() { - var removeItem = document.getElementById('removeItemModal'); - removeItem.addEventListener('show.bs.modal', function (event) { - isSelected = 0; - document.getElementById("delete-product").addEventListener("click", function () { - Array.from(document.querySelectorAll(".gridjs-table tr")).forEach(function (element) { - var filtered = ''; - if (element.classList.contains("gridjs-tr-selected")) { - var getid = element.querySelector('.form-check-input').value; - function arrayRemove(arr, value) { - return arr.filter(function (ele) { - return ele.id != value; - }); - } - var filtered = arrayRemove(productListAllData, getid); - var filteredPublished = arrayRemove(productListPublishedData, getid); - productListAllData = filtered; - productListPublishedData = filteredPublished; - element.remove(); - } - }); - document.getElementById("btn-close").click(); - if (document.getElementById("selection-element")) - document.getElementById("selection-element").style.display = 'none'; - - checkboxes.checked = false; - }); - }) -} - -function removeSingleItem() { - var getid = 0; - Array.from(document.querySelectorAll(".remove-list")).forEach(function (item) { - item.addEventListener('click', function (event) { - getid = item.getAttribute('data-id'); - document.getElementById("delete-product").addEventListener("click", function () { - function arrayRemove(arr, value) { - return arr.filter(function (ele) { - return ele.id != value; - }); - } - var filtered = arrayRemove(productListAllData, getid); - var filteredPublished = arrayRemove(productListPublishedData, getid); - productListAllData = filtered; - productListPublishedData = filteredPublished; - var element = item.closest(".gridjs-tr"); - element.remove(); - }); - }); - }); - - - var getEditid = 0; - Array.from(document.querySelectorAll(".edit-list")).forEach(function (elem) { - elem.addEventListener('click', function (event) { - getEditid = elem.getAttribute('data-edit-id'); - - productListAllData = productListAllData.map(function (item) { - if (item.id == getEditid) { - - sessionStorage.setItem('editInputValue', JSON.stringify(item)); - } - return item; - }); - }); - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/file-manager.init.js b/src/main/resources/static/assets/js/pages/file-manager.init.js deleted file mode 100644 index 541b2d7..0000000 --- a/src/main/resources/static/assets/js/pages/file-manager.init.js +++ /dev/null @@ -1,573 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: file-manager Js File -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Simple Donut Charts -var chartDonutBasicColors = getChartColorsArray("simple_dount_chart"); -if (chartDonutBasicColors) { - var options = { - series: [27.01, 20.87, 33.54, 37.58], - chart: { - height: 330, - type: 'donut', - }, - legend: { - position: 'bottom' - }, - labels: ["Documents", "Media", "Others", "Free Space"], - dataLabels: { - dropShadow: { - enabled: false, - } - }, - colors: chartDonutBasicColors - }; - - var chart = new ApexCharts(document.querySelector("#simple_dount_chart"), options); - chart.render(); -} - -var url="assets/json/"; -var allFileList = ''; -var editFlag = false; - -//mail list by json -var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); -}; - -// get json -getJSON("filemanager-filelist.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - allFileList = data; - loadFileData(allFileList); - } -}); - -// load product data -function loadFileData(datas) { - document.querySelector("#file-list").innerHTML = ''; - Array.from(datas).forEach(function (fileData, index) { - var fileIconElm - if (fileData.fileName.includes(".")) { - var fileIcon = fileData.fileName.split("."); - function isStatus(val) { - switch (val) { - case "png": - return ( - '' - ); - case "jpg": - return ( - '' - ); - case "pdf": - return ( - '' - ); - case "docx": - return ( - '' - ); - case "txt": - return ( - '' - ); - default: - return ( - '' - ); - } - } - - fileIconElm = isStatus(fileIcon[1]) - } else { - fileIconElm = '' - } - - var checkStarred = fileData.starred ? "active" : ""; - - document.querySelector("#file-list").innerHTML += - '\ - \ - \ -
    \ -
    '+ fileIconElm + '
    \ -
    '+ fileData.fileName + '
    \ -
    '+ fileData.filetype + '
    \ -
    \ - \ - '+ fileData.fileItem + '\ - '+ fileData.fileSize + '\ - '+ fileData.date + '\ - \ -
    \ - \ - \ -
    \ - \ - '; - - favouriteBtn(); - removeSingleItem(); - editFileList(); - fileDetailShow(); - }); -} - -// favourite btn -function favouriteBtn() { - Array.from(document.querySelectorAll(".favourite-btn")).forEach(function (item) { - item.addEventListener("click", function () { - if (item.classList.contains("active")) { - item.classList.remove("active"); - } else { - item.classList.add("active"); - } - }); - }); -} -favouriteBtn(); - -Array.from(document.querySelectorAll('.file-manager-menu a')).forEach(function (fileTab) { - fileTab.addEventListener("click", function () { - var folderListelm = document.querySelector(".file-manager-menu a.active"); - if (folderListelm) folderListelm.classList.remove("active"); - fileTab.classList.add('active'); - - var tabname = fileTab.querySelector('.file-list-link').innerHTML; - document.getElementById("file-list").innerHTML = ''; - - if (tabname != 'My Drive'){ - document.getElementById("filetype-title").innerHTML = tabname; - }else{ - document.getElementById("filetype-title").innerHTML = "Recent file"; - } - - if (tabname != 'My Drive' && tabname != 'Important' && tabname != 'Recents') { - var filterData = allFileList.filter(filelist => filelist.filetype === tabname); - document.getElementById("folder-list").style.display = "none"; - } else if(tabname == "Important"){ - var filterData = allFileList.filter(filelist => filelist.starred == true); - document.getElementById("folder-list").style.display = "none"; - } else { - var filterData = allFileList; - document.getElementById("folder-list").style.display = "block"; - } - - if(tabname == 'Recents'){ - document.getElementById("folder-list").style.display = "none"; - } - - loadFileData(filterData); - }) -}); - - -//Create a new folder -var createFolderForms = document.querySelectorAll('.createfolder-form') -Array.prototype.slice.call(createFolderForms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - var folderName = document.getElementById("foldername-input").value; - var uniqueid = Math.floor(Math.random() * 100); - folderlisthtml = - '
    \ -
    \ -
    \ -
    \ -
    \ - \ - \ -
    \ - \ -
    \ -
    \ -
    \ - \ -
    \ -
    '+ folderName + '
    \ -
    \ -
    \ - 0 Files\ - 0GB\ -
    \ -
    \ -
    \ -
    '; - - - if (folderName !== "" && !editFlag) { - var folderListdata = document.getElementById("folderlist-data"); - folderListdata.insertAdjacentHTML("afterbegin", folderlisthtml); - var addFolderClose = document.getElementById("addFolderBtn-close"); - addFolderClose.click(); - editFolderList(); - } else if (folderName !== "" && editFlag) { - var getEditid = 0; - getEditid = document.getElementById("folderid-input").value; - document.getElementById(getEditid).querySelector('.folder-name').innerHTML = folderName - var addFolderClose = document.getElementById("addFolderBtn-close"); - addFolderClose.click(); - editFlag = false; - document.getElementById("addNewFolder").innerHTML = "Add Folder"; - document.getElementById("createFolderModalLabel").innerHTML = "Create Folder"; - document.getElementById("folderid-input").value = ""; - document.getElementById("foldername-input").value = ""; - } - document.getElementById("folderid-input").value = ""; - document.getElementById("foldername-input").value = ""; - } - form.classList.add('was-validated'); - }, false) -}); - -function editFolderList() { - Array.from(document.querySelectorAll(".folder-card")).forEach(function (item) { - Array.from(item.querySelectorAll(".edit-folder-list")).forEach(function (subitem) { - subitem.addEventListener('click', function (event) { - - var editid = item.querySelector(".card").getAttribute('id'); - var getEditid = editid.split("-")[1]; - var checkid = item.querySelector(".form-check .form-check-input").getAttribute('id') - var getCheckid = checkid.split("_")[1]; - - if (getEditid == getCheckid) { - editFlag = true; - document.getElementById("addNewFolder").innerHTML = "Save"; - document.getElementById("createFolderModalLabel").innerHTML = "Folder Rename"; - document.getElementById("folderid-input").value = 'folder-' + getEditid; - document.getElementById("foldername-input").value = item.querySelector(".folder-name").innerHTML; - } - }); - }); - }); -}; - -editFolderList(); - -// Remove folder from list -var removeProduct = document.getElementById('removeFolderModal') -if (removeProduct) { - removeProduct.addEventListener('show.bs.modal', function (e) { - document.getElementById('remove-folderList').addEventListener('click', function (event) { - e.relatedTarget.closest('.folder-card').remove(); - document.getElementById("close-removeFoldermodal").click(); - }); - }); -}; - -// date & time -var date = new Date().toUTCString().slice(5, 16); - -function editFileList() { - var getEditid = 0; - Array.from(document.querySelectorAll(".edit-list")).forEach(function (elem) { - elem.addEventListener('click', function (event) { - getEditid = elem.getAttribute('data-edit-id'); - - allFileList = allFileList.map(function (item) { - if (item.id == getEditid) { - editFlag = true; - document.getElementById("addNewFile").innerHTML = "Save"; - document.getElementById("createFileModalLabel").innerHTML = "File Rename"; - document.getElementById("filename-input").value = item.fileName; - document.getElementById("fileid-input").value = item.id; - } - return item; - }); - }); - }); -} - -Array.from(document.querySelectorAll(".createFile-modal")).forEach(function (elem) { - elem.addEventListener('click', function (event) { - document.getElementById("addNewFile").innerHTML = "Create"; - document.getElementById("createFileModalLabel").innerHTML = "Create File"; - document.getElementById("filename-input").value = ""; - document.getElementById("fileid-input").value = ""; - document.getElementById("createfile-form").classList.remove("was-validated"); - }); -}); - -Array.from(document.querySelectorAll(".create-folder-modal")).forEach(function (elem) { - elem.addEventListener('click', function (event) { - document.getElementById("addNewFolder").innerHTML = "Add Folder"; - document.getElementById("createFolderModalLabel").innerHTML = "Create Folder"; - document.getElementById("folderid-input").value = ""; - document.getElementById("foldername-input").value = ""; - document.getElementById("createfolder-form").classList.remove("was-validated"); - }); -}); - - -var createFileForms = document.querySelectorAll('.createfile-form') -Array.prototype.slice.call(createFileForms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - - var fileName = document.getElementById("filename-input").value; - var uniqueid = Math.floor(Math.random() * 100); - - if (fileName !== "" && !editFlag) { - var newObj = { - "id": uniqueid, - "fileName": fileName + ".txt", - "filetype": "Documents", - "fileItem": "01", - "fileSize": "0 KB", - "date": date, - "starred": false - }; - - allFileList.push(newObj); - sortElementsById(); - document.getElementById("addFileBtn-close").click(); - } else if (fileName !== "" && editFlag) { - var getEditid = 0; - getEditid = document.getElementById("fileid-input").value; - allFileList = allFileList.map(function (item) { - if (item.id == getEditid) { - var editObj = { - "id": item.id, - "fileName": document.getElementById("filename-input").value, - "filetype": item.filetype, - "fileItem": item.fileItem, - "fileSize": item.fileSize, - "date": item.date, - "starred": item.starred, - }; - return editObj; - } - return item; - }); - - editFlag = false - document.getElementById("addFileBtn-close").click(); - } - - loadFileData(allFileList); - - document.getElementById("addNewFile").innerHTML = "Create"; - document.getElementById("createFileModalLabel").innerHTML = "Create File"; - } - form.classList.add('was-validated'); - }, false) -}); - - -function fetchIdFromObj(member) { - return parseInt(member.id); -} - -function sortElementsById() { - var manyfile = allFileList.sort(function (a, b) { - var x = fetchIdFromObj(a); - var y = fetchIdFromObj(b); - - if (x > y) { - return -1; - } - if (x < y) { - return 1; - } - return 0; - }) - loadFileData(manyfile); -} - -function removeSingleItem() { - var getid = 0; - Array.from(document.querySelectorAll(".remove-list")).forEach(function (item) { - item.addEventListener('click', function (event) { - getid = item.getAttribute('data-id'); - document.getElementById("remove-fileitem").addEventListener("click", function () { - function arrayRemove(arr, value) { - return arr.filter(function (ele) { - return ele.id != value; - }); - } - var filtered = arrayRemove(allFileList, getid); - - allFileList = filtered; - - loadFileData(allFileList); - document.getElementById("close-removefilemodal").click(); - document.getElementById("file-overview").style.display = "none"; - document.getElementById("folder-overview").style.display = "block"; - }); - }); - }); -} - -function fileDetailShow() { - var bodyElement = document.getElementsByTagName('body')[0]; - Array.from(document.querySelectorAll(".close-btn-overview")).forEach(function (item) { - item.addEventListener("click", function () { - bodyElement.classList.remove("file-detail-show"); - }); - }); - - Array.from(document.querySelectorAll("#file-list tr")).forEach(function (item) { - item.querySelector(".viewfile-list").addEventListener("click", function () { - bodyElement.classList.add("file-detail-show"); - document.getElementById("file-overview").style.display = "block"; - document.getElementById("folder-overview").style.display = "none"; - - var filelistId = item.querySelector(".filelist-id").value; - var filelistIcon = item.querySelector(".filelist-icon i").className; - var filelistName = item.querySelector(".filelist-name").innerHTML; - var filelistSize = item.querySelector(".filelist-size").innerHTML; - var filelistCreate = item.querySelector(".filelist-create").innerHTML; - var filelistType = item.querySelector(".filelist-type").innerHTML; - - - document.querySelector("#file-overview .file-icon i").className = filelistIcon; - Array.from(document.querySelectorAll("#file-overview .file-name")).forEach(function (elm) { - elm.innerHTML = filelistName; - }); - Array.from(document.querySelectorAll("#file-overview .file-size")).forEach(function (elm) { - elm.innerHTML = filelistSize; - }); - Array.from(document.querySelectorAll("#file-overview .create-date")).forEach(function (elm) { - elm.innerHTML = filelistCreate; - }); - document.querySelector("#file-overview .file-type").innerHTML = filelistType; - - document.querySelector("#file-overview .remove-file-overview").setAttribute("data-remove-id", filelistId); - if(item.querySelector(".favourite-btn").classList.contains("active")){ - document.querySelector("#file-overview .favourite-btn").classList.add("active"); - }else{ - document.querySelector("#file-overview .favourite-btn").classList.remove("active"); - } - }); -}); - var isShowMenu = false; - var emailMenuSidebar = document.getElementsByClassName('file-manager-sidebar'); - Array.from(document.querySelectorAll(".file-menu-btn")).forEach(function (item) { - item.addEventListener("click", function () { - Array.from(emailMenuSidebar).forEach(function (elm) { - elm.classList.add("menubar-show"); - isShowMenu = true; - }); - }); - }); - - window.addEventListener('click', function (e) { - if (document.querySelector(".file-manager-sidebar").classList.contains('menubar-show')) { - if (!isShowMenu) { - document.querySelector(".file-manager-sidebar").classList.remove("menubar-show"); - } - isShowMenu = false; - } - }); -} - -function removefileOverview() { - var getid = 0; - Array.from(document.querySelectorAll(".remove-file-overview")).forEach(function (item) { - item.addEventListener('click', function (event) { - getid = item.getAttribute('data-remove-id'); - document.getElementById("remove-fileitem").addEventListener("click", function () { - var filtered = ''; - function arrayRemove(arr, value) { - return arr.filter(function (ele) { - return ele.id != value; - }); - } - filtered = arrayRemove(allFileList, getid); - allFileList = filtered; - loadFileData(allFileList); - document.getElementById("close-removefilemodal").click(); - document.getElementsByTagName('body')[0].classList.remove("file-detail-show"); - }); - }); - }); -} -removefileOverview(); - -function windowResize() { - var windowSize = document.documentElement.clientWidth; - if (windowSize < 1400) { - document.body.classList.remove("file-detail-show"); - } else { - document.body.classList.add("file-detail-show"); - } -} - - -windowResize(); -window.addEventListener("resize", windowResize); - diff --git a/src/main/resources/static/assets/js/pages/flag-input.init.js b/src/main/resources/static/assets/js/pages/flag-input.init.js deleted file mode 100644 index 40fa395..0000000 --- a/src/main/resources/static/assets/js/pages/flag-input.init.js +++ /dev/null @@ -1,135 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: flag input Js File -*/ -(function () { - ("use strict"); - var url = "assets/json/"; - var countryListData = ''; - var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); - }; - // get json - getJSON("country-list.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - countryListData = data; - loadCountryListData(countryListData); - } - }); - function loadCountryListData(datas) { - var mainArray = Array.from(document.querySelectorAll("[data-input-flag]")) - var flags = ''; - var arr = Array.from(datas); - for (let index = 0; index < arr.length; index++) { - flags += ''; - } - for (let i = 0; i < mainArray.length; i++) { - mainArray[i].querySelector(".dropdown-menu-list").innerHTML = ''; - mainArray[i].querySelector(".dropdown-menu-list").innerHTML = flags; - countryListClickEvent(mainArray[i]); - } - }; - function countryListClickEvent(item) { - if (item.querySelector(".country-flagimg")) { - var countryFlagImg = item.querySelector(".country-flagimg").getAttribute('src'); - } - Array.from(item.querySelectorAll(".dropdown-menu li")).forEach(function (subitem) { - var optionFlagImg = subitem.querySelector(".options-flagimg").getAttribute("src"); - subitem.addEventListener("click", function () { - var optionCodeNo = subitem.querySelector(".countrylist-codeno").innerHTML; - if (item.querySelector("button")) { - item.querySelector("button img").setAttribute("src", optionFlagImg); - if (item.querySelector("button span")) { - item.querySelector("button span").innerHTML = optionCodeNo; - } - } - }); - if (countryFlagImg == optionFlagImg) { - subitem.classList.add("active"); - } - }); - // data option flag img with name - Array.from(document.querySelectorAll("[data-option-flag-img-name]")).forEach(function (item) { - var flagImg = getComputedStyle(item.querySelector(".flag-input")).backgroundImage; - var countryFlagImg = flagImg.substring( - flagImg.indexOf("/as") + 1, - flagImg.lastIndexOf('"') - ); - Array.from(item.querySelectorAll(".dropdown-menu li")).forEach(function (subitem) { - var optionFlagImg = subitem.querySelector(".options-flagimg").getAttribute("src"); - subitem.addEventListener("click", function () { - var optionCountryName = subitem.querySelector(".country-name").innerHTML; - item.querySelector(".flag-input").style.backgroundImage = "url(" + optionFlagImg + ")"; - item.querySelector(".flag-input").value = optionCountryName; - }); - if (countryFlagImg == optionFlagImg) { - subitem.classList.add("active"); - item.querySelector(".flag-input").value = subitem.querySelector(".country-name").innerHTML; - } - }); - }); - // data option flag img with name - Array.from(document.querySelectorAll("[data-option-flag-name]")).forEach(function (item) { - var countryName = item.querySelector(".flag-input").value; - Array.from(item.querySelectorAll(".dropdown-menu li")).forEach(function (subitem) { - var optionCountryName = subitem.querySelector(".country-name").innerHTML; - subitem.addEventListener("click", function () { - item.querySelector(".flag-input").value = optionCountryName; - }); - if (countryName == optionCountryName) { - subitem.classList.add("active"); - item.querySelector(".flag-input").value = subitem.querySelector(".country-name").innerHTML; - } - }); - }); - }; - //Search bar - Array.from(document.querySelectorAll("[data-input-flag]")).forEach(function (item) { - var searchInput = item.querySelector(".search-countryList"); - if (searchInput) { - searchInput.addEventListener("keyup", function () { - var inputVal = searchInput.value.toLowerCase(); - function filterItems(arr, query) { - return arr.filter(function (el) { - return (el.countryName.toLowerCase().indexOf(query.toLowerCase()) !== -1 || el.countryCode.indexOf(query) !== -1) - }) - } - var filterData = filterItems(countryListData, inputVal); - setTimeout(function () { - item.querySelector(".dropdown-menu-list").innerHTML = ''; - Array.from(filterData).forEach(function (listData) { - item.querySelector(".dropdown-menu-list").innerHTML += - ''; - }); - countryListClickEvent(item); - }, 350); - }); - }; - }); -})(); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/form-advanced.init.js b/src/main/resources/static/assets/js/pages/form-advanced.init.js deleted file mode 100644 index 717a499..0000000 --- a/src/main/resources/static/assets/js/pages/form-advanced.init.js +++ /dev/null @@ -1,102 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Form Advanced Js File -*/ - -// multiselect - -var multiSelectBasic = document.getElementById("multiselect-basic"); -if (multiSelectBasic) { - multi(multiSelectBasic, { - enable_search: false - }); -} - -var multiSelectHeader = document.getElementById("multiselect-header"); -if (multiSelectHeader) { - multi(multiSelectHeader, { - non_selected_header: "Cars", - selected_header: "Favorite Cars" - }); -} - -var multiSelectOptGroup = document.getElementById("multiselect-optiongroup"); -if (multiSelectOptGroup) { - multi(multiSelectOptGroup, { - enable_search: true - }); -} - -// Autocomplete -var autoCompleteFruit = new autoComplete({ - selector: "#autoCompleteFruit", - placeHolder: "Search for Fruits...", - data: { - src: ["Apple", "Banana", "Blueberry", "Cherry", "Coconut", "Kiwi", "Lemon", "Lime", "Mango", "Orange"], - cache: true - }, - resultsList: { - element: function element(list, data) { - if (!data.results.length) { - // Create "No Results" message element - var message = document.createElement("div"); - // Add class to the created element - message.setAttribute("class", "no_result"); - // Add message text content - message.innerHTML = "Found No Results for \"" + data.query + "\""; - // Append message element to the results list - list.prepend(message); - } - }, - noResults: true - }, - resultItem: { - highlight: true - }, - events: { - input: { - selection: function selection(event) { - var selection = event.detail.selection.value; - autoCompleteFruit.input.value = selection; - } - } - } -}); - -var autoCompleteCars = new autoComplete({ - selector: "#autoCompleteCars", - placeHolder: "Search for Cars...", - data: { - src: ["Chevrolet", "Fiat", "Ford", "Honda", "Hyundai", "Hyundai", "Kia", "Mahindra", "Maruti", "Mitsubishi", "MG", "Nissan", "Renault", "Skoda", "Tata", "Toyato", "Volkswagen"], - cache: true - }, - resultsList: { - element: function element(list, data) { - if (!data.results.length) { - // Create "No Results" message element - var message = document.createElement("div"); - // Add class to the created element - message.setAttribute("class", "no_result"); - // Add message text content - message.innerHTML = "Found No Results for \"" + data.query + "\""; - // Append message element to the results list - list.prepend(message); - } - }, - noResults: true - }, - resultItem: { - highlight: true - }, - events: { - input: { - selection: function selection(event) { - var selection = event.detail.selection.value; - autoCompleteCars.input.value = selection; - } - } - } -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/form-editor.init.js b/src/main/resources/static/assets/js/pages/form-editor.init.js deleted file mode 100644 index 178a6a1..0000000 --- a/src/main/resources/static/assets/js/pages/form-editor.init.js +++ /dev/null @@ -1,86 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Form editor Js File -*/ - -// ckeditor - -var ckClassicEditor = document.querySelectorAll(".ckeditor-classic") -if (ckClassicEditor) { - Array.from(ckClassicEditor).forEach(function () { - ClassicEditor - .create(document.querySelector('.ckeditor-classic')) - .then(function (editor) { - editor.ui.view.editable.element.style.height = '200px'; - }) - .catch(function (error) { - console.error(error); - }); - }); -} - -// Snow theme -var snowEditor = document.querySelectorAll(".snow-editor"); -if (snowEditor) { - Array.from(snowEditor).forEach(function (item) { - var snowEditorData = {}; - var issnowEditorVal = item.classList.contains("snow-editor"); - if (issnowEditorVal == true) { - snowEditorData.theme = 'snow', - snowEditorData.modules = { - 'toolbar': [ - [{ - 'font': [] - }, { - 'size': [] - }], - ['bold', 'italic', 'underline', 'strike'], - [{ - 'color': [] - }, { - 'background': [] - }], - [{ - 'script': 'super' - }, { - 'script': 'sub' - }], - [{ - 'header': [false, 1, 2, 3, 4, 5, 6] - }, 'blockquote', 'code-block'], - [{ - 'list': 'ordered' - }, { - 'list': 'bullet' - }, { - 'indent': '-1' - }, { - 'indent': '+1' - }], - ['direction', { - 'align': [] - }], - ['link', 'image', 'video'], - ['clean'] - ] - } - } - new Quill(item, snowEditorData); - }); -} - -//buuble theme -var bubbleEditor = document.querySelectorAll(".bubble-editor") -if (bubbleEditor) { - Array.from(bubbleEditor).forEach(function (element) { - var bubbleEditorData = {}; - var isbubbleEditorVal = element.classList.contains("bubble-editor"); - if (isbubbleEditorVal == true) { - bubbleEditorData.theme = 'bubble' - } - new Quill(element, bubbleEditorData); - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/form-file-upload.init.js b/src/main/resources/static/assets/js/pages/form-file-upload.init.js deleted file mode 100644 index 13b6029..0000000 --- a/src/main/resources/static/assets/js/pages/form-file-upload.init.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Form file upload Js File -*/ - -// Dropzone -var dropzonePreviewNode = document.querySelector("#dropzone-preview-list"); -dropzonePreviewNode.id = ""; -if(dropzonePreviewNode){ - var previewTemplate = dropzonePreviewNode.parentNode.innerHTML; - dropzonePreviewNode.parentNode.removeChild(dropzonePreviewNode); - var dropzone = new Dropzone(".dropzone", { - url: 'https://httpbin.org/post', - method: "post", - previewTemplate: previewTemplate, - previewsContainer: "#dropzone-preview", - }); -} - -// FilePond -FilePond.registerPlugin( - // encodes the file as base64 data - FilePondPluginFileEncode, - // validates the size of the file - FilePondPluginFileValidateSize, - // corrects mobile image orientation - FilePondPluginImageExifOrientation, - // previews dropped images - FilePondPluginImagePreview -); - -var inputMultipleElements = document.querySelectorAll('input.filepond-input-multiple'); -if(inputMultipleElements){ - -// loop over input elements -Array.from(inputMultipleElements).forEach(function (inputElement) { - // create a FilePond instance at the input element location - FilePond.create(inputElement); -}) - -FilePond.create( - document.querySelector('.filepond-input-circle'), { - labelIdle: 'Drag & Drop your picture or Browse', - imagePreviewHeight: 170, - imageCropAspectRatio: '1:1', - imageResizeTargetWidth: 200, - imageResizeTargetHeight: 200, - stylePanelLayout: 'compact circle', - styleLoadIndicatorPosition: 'center bottom', - styleProgressIndicatorPosition: 'right bottom', - styleButtonRemoveItemPosition: 'left bottom', - styleButtonProcessItemPosition: 'right bottom', - } -); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/form-input-spin.init.js b/src/main/resources/static/assets/js/pages/form-input-spin.init.js deleted file mode 100644 index 5ae7fc9..0000000 --- a/src/main/resources/static/assets/js/pages/form-input-spin.init.js +++ /dev/null @@ -1,48 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Form input spin Js File -*/ - -// input spin -isData(); - -function isData() { - var plus = document.getElementsByClassName('plus'); - var minus = document.getElementsByClassName('minus'); - var product = document.getElementsByClassName("product"); - - if (plus) { - Array.from(plus).forEach(function (e) { - e.addEventListener('click', function (event) { - // if(event.target.previousElementSibling.value ) - if (parseInt(e.previousElementSibling.value) < event.target.previousElementSibling.getAttribute('max')) { - event.target.previousElementSibling.value++; - if (product) { - Array.from(product).forEach(function (x) { - updateQuantity(event.target); - }) - } - - } - }); - }); - } - - if (minus) { - Array.from(minus).forEach(function (e) { - e.addEventListener('click', function (event) { - if (parseInt(e.nextElementSibling.value) > event.target.nextElementSibling.getAttribute('min')) { - event.target.nextElementSibling.value--; - if (product) { - Array.from(product).forEach(function (x) { - updateQuantity(event.target); - }) - } - } - }); - }); - } -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/form-masks.init.js b/src/main/resources/static/assets/js/pages/form-masks.init.js deleted file mode 100644 index e6b351b..0000000 --- a/src/main/resources/static/assets/js/pages/form-masks.init.js +++ /dev/null @@ -1,82 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Form masks Js File -*/ - -if (document.querySelector("#cleave-date")) { - var cleaveDate = new Cleave('#cleave-date', { - date: true, - delimiter: '-', - datePattern: ['d', 'm', 'Y'] - }); -} - -if (document.querySelector("#cleave-date-format")) { - var cleaveDateFormat = new Cleave('#cleave-date-format', { - date: true, - datePattern: ['m', 'y'] - }); -} - -if (document.querySelector("#cleave-time")) { - var cleaveTime = new Cleave('#cleave-time', { - time: true, - timePattern: ['h', 'm', 's'] - }); -} - -if (document.querySelector("#cleave-time-format")) { - var cleaveTimeFormat = new Cleave('#cleave-time-format', { - time: true, - timePattern: ['h', 'm'] - }); -} - -if (document.querySelector("#cleave-numeral")) { - var cleaveNumeral = new Cleave('#cleave-numeral', { - numeral: true, - numeralThousandsGroupStyle: 'thousand' - }); -} - -if (document.querySelector("#cleave-ccard")) { - var cleaveBlocks = new Cleave('#cleave-ccard', { - blocks: [4, 4, 4, 4], - uppercase: true - }); -} - -if (document.querySelector("#cleave-delimiter")) { - var cleaveDelimiter = new Cleave('#cleave-delimiter', { - delimiter: '·', - blocks: [3, 3, 3], - uppercase: true - }); -} - -if (document.querySelector("#cleave-delimiters")) { - var cleaveDelimiters = new Cleave('#cleave-delimiters', { - delimiters: ['.', '.', '-'], - blocks: [3, 3, 3, 2], - uppercase: true - }); -} - -if (document.querySelector("#cleave-prefix")) { - var cleavePrefix = new Cleave('#cleave-prefix', { - prefix: 'PREFIX', - delimiter: '-', - blocks: [6, 4, 4, 4], - uppercase: true - }); -} - -if (document.querySelector("#cleave-phone")) { - var cleaveBlocks = new Cleave('#cleave-phone', { - delimiters: ['(', ')', '-'], - blocks: [0, 3, 3, 4] - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/form-pickers.init.js b/src/main/resources/static/assets/js/pages/form-pickers.init.js deleted file mode 100644 index c080b00..0000000 --- a/src/main/resources/static/assets/js/pages/form-pickers.init.js +++ /dev/null @@ -1,272 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Form pickers Js File -*/ - -// colorpickers - -// classic color picker -var classicPickrDemo = document.querySelectorAll(".classic-colorpicker"); -if (classicPickrDemo) - Array.from(classicPickrDemo).forEach(function () { - Pickr.create({ - el: ".classic-colorpicker", - theme: "classic", // or 'monolith', or 'nano' - default: "#405189", - swatches: [ - "rgba(244, 67, 54, 1)", - "rgba(233, 30, 99, 0.95)", - "rgba(156, 39, 176, 0.9)", - "rgba(103, 58, 183, 0.85)", - "rgba(63, 81, 181, 0.8)", - "rgba(33, 150, 243, 0.75)", - "rgba(3, 169, 244, 0.7)", - "rgba(0, 188, 212, 0.7)", - "rgba(0, 150, 136, 0.75)", - "rgba(76, 175, 80, 0.8)", - "rgba(139, 195, 74, 0.85)", - "rgba(205, 220, 57, 0.9)", - "rgba(255, 235, 59, 0.95)", - "rgba(255, 193, 7, 1)", - ], - - components: { - // Main components - preview: true, - opacity: true, - hue: true, - - // Input / output Options - interaction: { - hex: true, - rgba: true, - hsva: true, - input: true, - clear: true, - save: true, - }, - }, - }); - }); - -// monolith color picker -var monolithColorPickr = document.querySelectorAll(".monolith-colorpicker"); -if (monolithColorPickr) - Array.from(monolithColorPickr).forEach(function () { - Pickr.create({ - el: ".monolith-colorpicker", - theme: "monolith", - default: "#0ab39c", - swatches: [ - "rgba(244, 67, 54, 1)", - "rgba(233, 30, 99, 0.95)", - "rgba(156, 39, 176, 0.9)", - "rgba(103, 58, 183, 0.85)", - "rgba(63, 81, 181, 0.8)", - "rgba(33, 150, 243, 0.75)", - "rgba(3, 169, 244, 0.7)", - ], - defaultRepresentation: "HEXA", - components: { - // Main components - preview: true, - opacity: true, - hue: true, - - // Input / output Options - interaction: { - hex: false, - rgba: false, - hsva: false, - input: true, - clear: true, - save: true, - }, - }, - }); - }); - -// nano color picker -var nanoColorPickr = document.querySelectorAll(".nano-colorpicker"); -if (nanoColorPickr) - Array.from(nanoColorPickr).forEach(function () { - Pickr.create({ - el: ".nano-colorpicker", - theme: "nano", - default: "#3577f1", - swatches: [ - "rgba(244, 67, 54, 1)", - "rgba(233, 30, 99, 0.95)", - "rgba(156, 39, 176, 0.9)", - "rgba(103, 58, 183, 0.85)", - "rgba(63, 81, 181, 0.8)", - "rgba(33, 150, 243, 0.75)", - "rgba(3, 169, 244, 0.7)", - ], - defaultRepresentation: "HEXA", - components: { - // Main components - preview: true, - opacity: true, - hue: true, - - // Input / output Options - interaction: { - hex: false, - rgba: false, - hsva: false, - input: true, - clear: true, - save: true, - }, - }, - }); - }); - -// demo color picker -var demoColorPickr = document.querySelectorAll(".colorpicker-demo"); -if (demoColorPickr) - Array.from(demoColorPickr).forEach(function () { - Pickr.create({ - el: ".colorpicker-demo", - theme: "monolith", - default: "#405189", - components: { - // Main components - preview: true, - // Input / output Options - interaction: { - clear: true, - save: true, - }, - }, - }); - }); - -// color picker opacity & hue -var opacityHueColorPickr = document.querySelectorAll(".colorpicker-opacity-hue"); -if (opacityHueColorPickr) - Array.from(opacityHueColorPickr).forEach(function () { - Pickr.create({ - el: ".colorpicker-opacity-hue", - theme: "monolith", - default: "#0ab39c", - - components: { - // Main components - preview: true, - opacity: true, - hue: true, - - // Input / output Options - interaction: { - clear: true, - save: true, - }, - }, - }); - }); - -// color picker swatches -var swatcherColorPickr = document.querySelectorAll(".colorpicker-switch"); -if (swatcherColorPickr) - Array.from(swatcherColorPickr).forEach(function () { - Pickr.create({ - el: ".colorpicker-switch", - theme: "monolith", - default: "#3577f1", - swatches: [ - "rgba(244, 67, 54, 1)", - "rgba(233, 30, 99, 0.95)", - "rgba(156, 39, 176, 0.9)", - "rgba(103, 58, 183, 0.85)", - "rgba(63, 81, 181, 0.8)", - "rgba(33, 150, 243, 0.75)", - "rgba(3, 169, 244, 0.7)", - ], - components: { - // Main components - preview: true, - opacity: true, - hue: true, - - // Input / output Options - interaction: { - clear: true, - save: true, - }, - }, - }); - }); - -// color picker input -var inputColorPickr = document.querySelectorAll(".colorpicker-input"); -if (inputColorPickr) - Array.from(inputColorPickr).forEach(function () { - Pickr.create({ - el: ".colorpicker-input", - theme: "monolith", - default: "#f7b84b", - swatches: [ - "rgba(244, 67, 54, 1)", - "rgba(233, 30, 99, 0.95)", - "rgba(156, 39, 176, 0.9)", - "rgba(103, 58, 183, 0.85)", - "rgba(63, 81, 181, 0.8)", - "rgba(33, 150, 243, 0.75)", - "rgba(3, 169, 244, 0.7)", - ], - components: { - // Main components - preview: true, - opacity: true, - hue: true, - - // Input / output Options - interaction: { - input: true, - clear: true, - save: true, - }, - }, - }); - }); - -// color picker Format -var formatColorPickr = document.querySelectorAll(".colorpicker-format"); -if (formatColorPickr) - Array.from(formatColorPickr).forEach(function () { - Pickr.create({ - el: ".colorpicker-format", - theme: "monolith", - default: "#f06548", - swatches: [ - "rgba(244, 67, 54, 1)", - "rgba(233, 30, 99, 0.95)", - "rgba(156, 39, 176, 0.9)", - "rgba(103, 58, 183, 0.85)", - "rgba(63, 81, 181, 0.8)", - "rgba(33, 150, 243, 0.75)", - "rgba(3, 169, 244, 0.7)", - ], - components: { - // Main components - preview: true, - opacity: true, - hue: true, - - // Input / output Options - interaction: { - hex: true, - rgba: true, - hsva: true, - input: true, - clear: true, - save: true, - }, - }, - }); - }); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/form-validation.init.js b/src/main/resources/static/assets/js/pages/form-validation.init.js deleted file mode 100644 index 4afcefa..0000000 --- a/src/main/resources/static/assets/js/pages/form-validation.init.js +++ /dev/null @@ -1,27 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Form validation Js File -*/ - -// Example starter JavaScript for disabling form submissions if there are invalid fields -(function () { - 'use strict'; - window.addEventListener('load', function () { - // Fetch all the forms we want to apply custom Bootstrap validation styles to - var forms = document.getElementsByClassName('needs-validation'); - // Loop over them and prevent submission - if (forms) - var validation = Array.prototype.filter.call(forms, function (form) { - form.addEventListener('submit', function (event) { - if (form.checkValidity() === false) { - event.preventDefault(); - event.stopPropagation(); - } - form.classList.add('was-validated'); - }, false); - }); - }, false); -})(); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/form-wizard.init.js b/src/main/resources/static/assets/js/pages/form-wizard.init.js deleted file mode 100644 index 388d2bb..0000000 --- a/src/main/resources/static/assets/js/pages/form-wizard.init.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Form wizard Js File -*/ - -// user profile img file upload -if (document.querySelector("#profile-img-file-input")) - document.querySelector("#profile-img-file-input").addEventListener("change", function () { - var preview = document.querySelector(".user-profile-image"); - var file = document.querySelector(".profile-img-file-input").files[0]; - var reader = new FileReader(); - - reader.addEventListener("load", function () { - preview.src = reader.result; - }, false); - - if (file) - reader.readAsDataURL(file); - }); - -if (document.querySelectorAll(".form-steps")) - Array.from(document.querySelectorAll(".form-steps")).forEach(function (form) { - - // next tab - if (form.querySelectorAll(".nexttab")){ - Array.from(form.querySelectorAll(".nexttab")).forEach(function (nextButton) { - var tabEl = form.querySelectorAll('button[data-bs-toggle="pill"]'); - Array.from(tabEl).forEach(function (item) { - item.addEventListener('show.bs.tab', function (event) { - event.target.classList.add('done'); - }); - }); - nextButton.addEventListener("click", function () { - form.classList.add('was-validated'); - form.querySelectorAll(".tab-pane.show .form-control").forEach(function(elem){ - var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; - if(elem.value.length > 0 && elem.value.match(validRegex)){ - var nextTab = nextButton.getAttribute('data-nexttab'); - document.getElementById(nextTab).click(); - form.classList.remove('was-validated'); - } - }) - }) - }); - } - - //Pervies tab - if (form.querySelectorAll(".previestab")) - Array.from(form.querySelectorAll(".previestab")).forEach(function (prevButton) { - - prevButton.addEventListener("click", function () { - var prevTab = prevButton.getAttribute('data-previous'); - var totalDone = prevButton.closest("form").querySelectorAll(".custom-nav .done").length; - for (var i = totalDone - 1; i < totalDone; i++) { - (prevButton.closest("form").querySelectorAll(".custom-nav .done")[i]) ? prevButton.closest("form").querySelectorAll(".custom-nav .done")[i].classList.remove('done'): ''; - } - document.getElementById(prevTab).click(); - }); - }); - - // Step number click - var tabButtons = form.querySelectorAll('button[data-bs-toggle="pill"]'); - if (tabButtons) - Array.from(tabButtons).forEach(function (button, i) { - button.setAttribute("data-position", i); - button.addEventListener("click", function () { - form.classList.remove('was-validated'); - - var getProgressBar = button.getAttribute("data-progressbar"); - if (getProgressBar) { - var totalLength = document.getElementById("custom-progress-bar").querySelectorAll("li").length - 1; - var current = i; - var percent = (current / totalLength) * 100; - document.getElementById("custom-progress-bar").querySelector('.progress-bar').style.width = percent + "%"; - } - (form.querySelectorAll(".custom-nav .done").length > 0) ? - Array.from(form.querySelectorAll(".custom-nav .done")).forEach(function (doneTab) { - doneTab.classList.remove('done'); - }): ''; - for (var j = 0; j <= i; j++) { - tabButtons[j].classList.contains('active') ? tabButtons[j].classList.remove('done') : tabButtons[j].classList.add('done'); - } - }); - }); - }); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/gallery.init.js b/src/main/resources/static/assets/js/pages/gallery.init.js deleted file mode 100644 index e1af656..0000000 --- a/src/main/resources/static/assets/js/pages/gallery.init.js +++ /dev/null @@ -1,65 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Gallery init -*/ - -// Portfolio Filter -document.addEventListener("DOMContentLoaded", function (event) { - - // init Isotope - var GalleryWrapper = document.querySelector('.gallery-wrapper'); - if (GalleryWrapper) { - var iso = new Isotope('.gallery-wrapper', { - itemSelector: '.element-item', - layoutMode: 'fitRows' - }); - } - - // bind filter button click - var filtersElem = document.querySelector('.categories-filter'); - if (filtersElem) { - filtersElem.addEventListener('click', function (event) { - // only work with buttons - if (!matchesSelector(event.target, 'li a')) { - return; - } - var filterValue = event.target.getAttribute('data-filter'); - if (filterValue) { - // use matching filter function - iso.arrange({ - filter: filterValue - }); - } - }); - } - - // change is-checked class on buttons - var buttonGroups = document.querySelectorAll('.categories-filter'); - if (buttonGroups) { - Array.from(buttonGroups).forEach(function (btnGroup) { - var buttonGroup = btnGroup; - radioButtonGroup(buttonGroup); - }); - } - - function radioButtonGroup(buttonGroup) { - buttonGroup.addEventListener('click', function (event) { - // only work with buttons - if (!matchesSelector(event.target, 'li a')) { - return; - } - buttonGroup.querySelector('.active').classList.remove('active'); - event.target.classList.add('active'); - }); - } -}); - - -// GLightbox Popup -var lightbox = GLightbox({ - selector: '.image-popup', - title: false, -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/gmaps.init.js b/src/main/resources/static/assets/js/pages/gmaps.init.js deleted file mode 100644 index 78b14c6..0000000 --- a/src/main/resources/static/assets/js/pages/gmaps.init.js +++ /dev/null @@ -1,78 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Gmaps init Js File -*/ - -var map; -document.addEventListener("DOMContentLoaded", function (event) { - // Markers - if (document.getElementById('gmaps-markers')) { - map = new GMaps({ - div: '#gmaps-markers', - lat: -12.043333, - lng: -77.028333 - }); - map.addMarker({ - lat: -12.043333, - lng: -77.03, - title: 'Lima', - details: { - database_id: 42, - author: 'HPNeo' - }, - click: function (e) { - if (console.log) - console.log(e); - alert('You clicked in this marker'); - } - }); - } - - // Overlays - if (document.getElementById('gmaps-overlay')) { - map = new GMaps({ - div: '#gmaps-overlay', - lat: -12.043333, - lng: -77.028333 - }); - map.drawOverlay({ - lat: map.getCenter().lat(), - lng: map.getCenter().lng(), - content: '
    Lima
    ', - verticalAlign: 'top', - horizontalAlign: 'center' - }); - } - - //panorama - if (document.getElementById('panorama')) - map = GMaps.createPanorama({ - el: '#panorama', - lat: 42.3455, - lng: -71.0983 - }); - - //Map type - if (document.getElementById('gmaps-types')) { - map = new GMaps({ - div: '#gmaps-types', - lat: -12.043333, - lng: -77.028333, - mapTypeControlOptions: { - mapTypeIds: ["hybrid", "roadmap", "satellite", "terrain", "osm"] - } - }); - map.addMapType("osm", { - getTileUrl: function (coord, zoom) { - return "https://a.tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png"; - }, - tileSize: new google.maps.Size(256, 256), - name: "OpenStreetMap", - maxZoom: 18 - }); - map.setMapTypeId("osm"); - } -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/gridjs.init.js b/src/main/resources/static/assets/js/pages/gridjs.init.js deleted file mode 100644 index e401d49..0000000 --- a/src/main/resources/static/assets/js/pages/gridjs.init.js +++ /dev/null @@ -1,353 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: grid Js File -*/ - -// Basic Table -if (document.getElementById("table-gridjs")) - new gridjs.Grid({ - columns: [{ - name: 'ID', - width: '80px', - formatter: (function (cell) { - return gridjs.html('' + cell + ''); - }) - }, - { - name: 'Name', - width: '150px', - }, - { - name: 'Email', - width: '220px', - formatter: (function (cell) { - return gridjs.html('' + cell + ''); - }) - }, - { - name: 'Position', - width: '250px', - }, - { - name: 'Company', - width: '180px', - }, - { - name: 'Country', - width: '180px', - }, - { - name: 'Actions', - width: '150px', - formatter: (function (cell) { - return gridjs.html("" + - "Details" + - ""); - }) - }, - ], - pagination: { - limit: 5 - }, - sort: true, - search: true, - data: [ - ["01", "Jonathan", "jonathan@example.com", "Senior Implementation Architect", "Hauck Inc", "Holy See"], - ["02", "Harold", "harold@example.com", "Forward Creative Coordinator", "Metz Inc", "Iran"], - ["03", "Shannon", "shannon@example.com", "Legacy Functionality Associate", "Zemlak Group", "South Georgia"], - ["04", "Robert", "robert@example.com", "Product Accounts Technician", "Hoeger", "San Marino"], - ["05", "Noel", "noel@example.com", "Customer Data Director", "Howell - Rippin", "Germany"], - ["06", "Traci", "traci@example.com", "Corporate Identity Director", "Koelpin - Goldner", "Vanuatu"], - ["07", "Kerry", "kerry@example.com", "Lead Applications Associate", "Feeney, Langworth and Tremblay", "Niger"], - ["08", "Patsy", "patsy@example.com", "Dynamic Assurance Director", "Streich Group", "Niue"], - ["09", "Cathy", "cathy@example.com", "Customer Data Director", "Ebert, Schamberger and Johnston", "Mexico"], - ["10", "Tyrone", "tyrone@example.com", "Senior Response Liaison", "Raynor, Rolfson and Daugherty", "Qatar"], - ] - }).render(document.getElementById("table-gridjs")); - -// card Table -if (document.getElementById("table-card")) - new gridjs.Grid({ - columns: [{ - name: 'Name', - width: '150px', - },{ - name: 'Email', - width: '250px', - }, { - name: 'Position', - width: '250px', - }, { - name: 'Company', - width: '250px', - }, { - name: 'Country', - width: '150px', - }], - sort: true, - pagination: { - limit: 5 - }, - data: [ - ["Jonathan", "jonathan@example.com", "Senior Implementation Architect", "Hauck Inc", "Holy See"], - ["Harold", "harold@example.com", "Forward Creative Coordinator", "Metz Inc", "Iran"], - ["Shannon", "shannon@example.com", "Legacy Functionality Associate", "Zemlak Group", "South Georgia"], - ["Robert", "robert@example.com", "Product Accounts Technician", "Hoeger", "San Marino"], - ["Noel", "noel@example.com", "Customer Data Director", "Howell - Rippin", "Germany"], - ["Traci", "traci@example.com", "Corporate Identity Director", "Koelpin - Goldner", "Vanuatu"], - ["Kerry", "kerry@example.com", "Lead Applications Associate", "Feeney, Langworth and Tremblay", "Niger"], - ["Patsy", "patsy@example.com", "Dynamic Assurance Director", "Streich Group", "Niue"], - ["Cathy", "cathy@example.com", "Customer Data Director", "Ebert, Schamberger and Johnston", "Mexico"], - ["Tyrone", "tyrone@example.com", "Senior Response Liaison", "Raynor, Rolfson and Daugherty", "Qatar"], - ] - }).render(document.getElementById("table-card")); - - -// pagination Table -if (document.getElementById("table-pagination")) - new gridjs.Grid({ - columns: [{ - name: 'ID', - width: '120px', - formatter: (function (cell) { - return gridjs.html('' + cell + ''); - }) - }, { - name: 'Name', - width: '150px', - }, { - name: 'Date', - width: '180px', - }, { - name: 'Total', - width: '120px', - }, { - name: 'Status', - width: '120px', - }, - { - name: 'Actions', - width: '100px', - formatter: (function (cell) { - return gridjs.html(""); - }) - }, - ], - pagination: { - limit: 5 - }, - - data: [ - ["#VL2111", "Jonathan", "07 Oct, 2021", "$24.05", "Paid", ], - ["#VL2110", "Harold", "07 Oct, 2021", "$26.15", "Paid"], - ["#VL2109", "Shannon", "06 Oct, 2021", "$21.25", "Refund"], - ["#VL2108", "Robert", "05 Oct, 2021", "$25.03", "Paid"], - ["#VL2107", "Noel", "05 Oct, 2021", "$22.61", "Paid"], - ["#VL2106", "Traci", "04 Oct, 2021", "$24.05", "Paid"], - ["#VL2105", "Kerry", "04 Oct, 2021", "$26.15", "Paid"], - ["#VL2104", "Patsy", "04 Oct, 2021", "$21.25", "Refund"], - ["#VL2103", "Cathy", "03 Oct, 2021", "$22.61", "Paid"], - ["#VL2102", "Tyrone", "03 Oct, 2021", "$25.03", "Paid"], - ] - }).render(document.getElementById("table-pagination")); - -// search Table -if (document.getElementById("table-search")) - new gridjs.Grid({ - columns: [{ - name: 'Name', - width: '150px', - }, { - name: 'Email', - width: '250px', - }, { - name: 'Position', - width: '250px', - }, { - name: 'Company', - width: '250px', - }, { - name: 'Country', - width: '150px', - }], - pagination: { - limit: 5 - }, - search: true, - data: [ - ["Jonathan", "jonathan@example.com", "Senior Implementation Architect", "Hauck Inc", "Holy See"], - ["Harold", "harold@example.com", "Forward Creative Coordinator", "Metz Inc", "Iran"], - ["Shannon", "shannon@example.com", "Legacy Functionality Associate", "Zemlak Group", "South Georgia"], - ["Robert", "robert@example.com", "Product Accounts Technician", "Hoeger", "San Marino"], - ["Noel", "noel@example.com", "Customer Data Director", "Howell - Rippin", "Germany"], - ["Traci", "traci@example.com", "Corporate Identity Director", "Koelpin - Goldner", "Vanuatu"], - ["Kerry", "kerry@example.com", "Lead Applications Associate", "Feeney, Langworth and Tremblay", "Niger"], - ["Patsy", "patsy@example.com", "Dynamic Assurance Director", "Streich Group", "Niue"], - ["Cathy", "cathy@example.com", "Customer Data Director", "Ebert, Schamberger and Johnston", "Mexico"], - ["Tyrone", "tyrone@example.com", "Senior Response Liaison", "Raynor, Rolfson and Daugherty", "Qatar"], - ] - }).render(document.getElementById("table-search")); - -// Sorting Table -if (document.getElementById("table-sorting")) - new gridjs.Grid({ - columns: [{ - name: 'Name', - width: '150px', - }, { - name: 'Email', - width: '250px', - }, { - name: 'Position', - width: '250px', - }, { - name: 'Company', - width: '250px', - }, { - name: 'Country', - width: '150px', - }], - pagination: { - limit: 5 - }, - sort: true, - data: [ - ["Jonathan", "jonathan@example.com", "Senior Implementation Architect", "Hauck Inc", "Holy See"], - ["Harold", "harold@example.com", "Forward Creative Coordinator", "Metz Inc", "Iran"], - ["Shannon", "shannon@example.com", "Legacy Functionality Associate", "Zemlak Group", "South Georgia"], - ["Robert", "robert@example.com", "Product Accounts Technician", "Hoeger", "San Marino"], - ["Noel", "noel@example.com", "Customer Data Director", "Howell - Rippin", "Germany"], - ["Traci", "traci@example.com", "Corporate Identity Director", "Koelpin - Goldner", "Vanuatu"], - ["Kerry", "kerry@example.com", "Lead Applications Associate", "Feeney, Langworth and Tremblay", "Niger"], - ["Patsy", "patsy@example.com", "Dynamic Assurance Director", "Streich Group", "Niue"], - ["Cathy", "cathy@example.com", "Customer Data Director", "Ebert, Schamberger and Johnston", "Mexico"], - ["Tyrone", "tyrone@example.com", "Senior Response Liaison", "Raynor, Rolfson and Daugherty", "Qatar"], - ] - }).render(document.getElementById("table-sorting")); - - -// Loading State Table -if (document.getElementById("table-loading-state")) - new gridjs.Grid({ - columns: [{ - name: 'Name', - width: '150px', - }, { - name: 'Email', - width: '250px', - }, { - name: 'Position', - width: '250px', - }, { - name: 'Company', - width: '250px', - }, { - name: 'Country', - width: '150px', - }], - pagination: { - limit: 5 - }, - sort: true, - data: function () { - return new Promise(function (resolve) { - setTimeout(function () { - resolve([ - ["Jonathan", "jonathan@example.com", "Senior Implementation Architect", "Hauck Inc", "Holy See"], - ["Harold", "harold@example.com", "Forward Creative Coordinator", "Metz Inc", "Iran"], - ["Shannon", "shannon@example.com", "Legacy Functionality Associate", "Zemlak Group", "South Georgia"], - ["Robert", "robert@example.com", "Product Accounts Technician", "Hoeger", "San Marino"], - ["Noel", "noel@example.com", "Customer Data Director", "Howell - Rippin", "Germany"], - ["Traci", "traci@example.com", "Corporate Identity Director", "Koelpin - Goldner", "Vanuatu"], - ["Kerry", "kerry@example.com", "Lead Applications Associate", "Feeney, Langworth and Tremblay", "Niger"], - ["Patsy", "patsy@example.com", "Dynamic Assurance Director", "Streich Group", "Niue"], - ["Cathy", "cathy@example.com", "Customer Data Director", "Ebert, Schamberger and Johnston", "Mexico"], - ["Tyrone", "tyrone@example.com", "Senior Response Liaison", "Raynor, Rolfson and Daugherty", "Qatar"] - ]) - }, 2000); - }); - } - }).render(document.getElementById("table-loading-state")); - - -// Fixed Header -if (document.getElementById("table-fixed-header")) - new gridjs.Grid({ - columns: [{ - name: 'Name', - width: '150px', - }, { - name: 'Email', - width: '250px', - }, { - name: 'Position', - width: '250px', - }, { - name: 'Company', - width: '250px', - }, { - name: 'Country', - width: '150px', - }], - sort: true, - pagination: true, - fixedHeader: true, - height: '400px', - data: [ - ["Jonathan", "jonathan@example.com", "Senior Implementation Architect", "Hauck Inc", "Holy See"], - ["Harold", "harold@example.com", "Forward Creative Coordinator", "Metz Inc", "Iran"], - ["Shannon", "shannon@example.com", "Legacy Functionality Associate", "Zemlak Group", "South Georgia"], - ["Robert", "robert@example.com", "Product Accounts Technician", "Hoeger", "San Marino"], - ["Noel", "noel@example.com", "Customer Data Director", "Howell - Rippin", "Germany"], - ["Traci", "traci@example.com", "Corporate Identity Director", "Koelpin - Goldner", "Vanuatu"], - ["Kerry", "kerry@example.com", "Lead Applications Associate", "Feeney, Langworth and Tremblay", "Niger"], - ["Patsy", "patsy@example.com", "Dynamic Assurance Director", "Streich Group", "Niue"], - ["Cathy", "cathy@example.com", "Customer Data Director", "Ebert, Schamberger and Johnston", "Mexico"], - ["Tyrone", "tyrone@example.com", "Senior Response Liaison", "Raynor, Rolfson and Daugherty", "Qatar"], - ] - }).render(document.getElementById("table-fixed-header")); - - -// Hidden Columns -if (document.getElementById("table-hidden-column")) - new gridjs.Grid({ - columns: [{ - name: 'Name', - width: '120px', - }, { - name: 'Email', - width: '250px', - }, { - name: 'Position', - width: '250px', - }, { - name: 'Company', - width: '250px', - }, - { - name: 'Country', - hidden: true - }, - ], - pagination: { - limit: 5 - }, - sort: true, - data: [ - ["Jonathan", "jonathan@example.com", "Senior Implementation Architect", "Hauck Inc", "Holy See"], - ["Harold", "harold@example.com", "Forward Creative Coordinator", "Metz Inc", "Iran"], - ["Shannon", "shannon@example.com", "Legacy Functionality Associate", "Zemlak Group", "South Georgia"], - ["Robert", "robert@example.com", "Product Accounts Technician", "Hoeger", "San Marino"], - ["Noel", "noel@example.com", "Customer Data Director", "Howell - Rippin", "Germany"], - ["Traci", "traci@example.com", "Corporate Identity Director", "Koelpin - Goldner", "Vanuatu"], - ["Kerry", "kerry@example.com", "Lead Applications Associate", "Feeney, Langworth and Tremblay", "Niger"], - ["Patsy", "patsy@example.com", "Dynamic Assurance Director", "Streich Group", "Niue"], - ["Cathy", "cathy@example.com", "Customer Data Director", "Ebert, Schamberger and Johnston", "Mexico"], - ["Tyrone", "tyrone@example.com", "Senior Response Liaison", "Raynor, Rolfson and Daugherty", "Qatar"], - ] - }).render(document.getElementById("table-hidden-column")); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/imprimelibros/cart/cart.js b/src/main/resources/static/assets/js/pages/imprimelibros/cart/cart.js index b2f73d5..192b043 100644 --- a/src/main/resources/static/assets/js/pages/imprimelibros/cart/cart.js +++ b/src/main/resources/static/assets/js/pages/imprimelibros/cart/cart.js @@ -42,6 +42,7 @@ $(() => { if ($('.product').length === 0) { $("#alert-empty").removeClass("d-none"); $('.cart-content').addClass('d-none'); + $('#btn-checkout').prop('disabled', true); return; } else { @@ -59,7 +60,12 @@ $(() => { return; } $(".alert-shipment").addClass("d-none"); - $('#btn-checkout').prop('disabled', false); + if ($("#errorEnvio").hasClass("d-none")) { + $('#btn-checkout').prop('disabled', false); + } + else { + $('#btn-checkout').prop('disabled', true); + } } else { const items = $(".product"); @@ -92,7 +98,7 @@ $(() => { item.find(".alert-icon-shipment").addClass("d-none"); } } - if (errorFound) { + if (errorFound || $("#errorEnvio").hasClass("d-none") === false) { $(".alert-shipment").removeClass("d-none"); $('#btn-checkout').prop('disabled', true); } diff --git a/src/main/resources/static/assets/js/pages/imprimelibros/cart/shipping-cart.js b/src/main/resources/static/assets/js/pages/imprimelibros/cart/shipping-cart.js index 95bab99..4d86a7e 100644 --- a/src/main/resources/static/assets/js/pages/imprimelibros/cart/shipping-cart.js +++ b/src/main/resources/static/assets/js/pages/imprimelibros/cart/shipping-cart.js @@ -422,7 +422,7 @@ $(() => { return; } // Éxito real: cerrar y recargar tabla - modal.addClass('d-none'); + $('#direccionFormModal').modal('hide'); seleccionarDireccionEnvio(); }, error: function (xhr) { @@ -432,7 +432,6 @@ $(() => { const isEdit = $('#direccionFormModalBody #direccionForm input[name="_method"][value="PUT"]').length > 0; const title = $('#direccionFormModalBody #direccionForm').data(isEdit ? 'edit' : 'add'); $('#direccionModal .modal-title').text(title); - initSelect2Cliente(true); return; } // Fallback diff --git a/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js b/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js index 3aa8e86..cd97df1 100644 --- a/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js +++ b/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js @@ -1,3 +1,5 @@ +import { showLoader, hideLoader } from '../loader.js'; + $(() => { const csrfToken = document.querySelector('meta[name="_csrf"]')?.getAttribute('content'); @@ -14,8 +16,208 @@ $(() => { const modalEl = document.getElementById('direccionFormModal'); const modal = bootstrap.Modal.getOrCreateInstance(modalEl); + $('#addBillingAddressBtn').on('click', seleccionarDireccionEnvio); - + $('#authorization-required').on('change', function () { + if($(this).is(':checked')) { + if ($('#direccion-div .direccion-card').length > 0) { + $('#btn-checkout').prop('disabled', false); + } + } else { + $('#btn-checkout').prop('disabled', true); + } + }); - + + async function seleccionarDireccionEnvio() { + + const { value: direccionId, isDenied } = await Swal.fire({ + title: window.languageBundle['checkout.billing-address.title'] || 'Seleccione una dirección', + html: ` + + `, + showCancelButton: true, + showDenyButton: true, + buttonsStyling: false, + confirmButtonText: window.languageBundle['app.seleccionar'] || 'Seleccionar', + cancelButtonText: window.languageBundle['app.cancelar'] || 'Cancelar', + denyButtonText: window.languageBundle['checkout.billing-address.new-address'] || 'Nueva dirección', + customClass: { + confirmButton: 'btn btn-secondary me-2', + cancelButton: 'btn btn-light', + denyButton: 'btn btn-secondary me-2' + }, + focusConfirm: false, + + // Inicializa cuando el DOM del modal ya existe + didOpen: () => { + const $select = $('#direccionSelect'); + $select.empty(); // limpia placeholder estático + + $select.select2({ + width: '100%', + dropdownParent: $('.swal2-container'), + ajax: { + url: '/direcciones/facturacion/select2', + dataType: 'json', + delay: 250, + data: params => ({ q: params.term || '' }), + processResults: (data) => { + const items = Array.isArray(data) ? data : (data.results || []); + return { + results: items.map(item => ({ + id: item.id, + text: item.text, // ← Select2 necesita 'id' y 'text' + alias: item.alias || 'Sin alias', + att: item.att || '', + direccion: item.direccion || '', + cp: item.cp || '', + ciudad: item.ciudad || '', + html: ` +
    + ${item.alias || 'Sin alias'}
    + ${item.att ? `${item.att}
    ` : ''} + ${item.direccion || ''}${item.cp ? ', ' + item.cp : ''}${item.ciudad ? ', ' + item.ciudad : ''} +
    + ` + })), + pagination: { more: false } // opcional, evita que espere más páginas + }; + } + + }, + placeholder: window.languageBundle['checkout.billing-address.select-placeholder'] || 'Buscar en direcciones...', + language: language, + + templateResult: data => { + if (data.loading) return data.text; + return $(data.html || data.text); + }, + // Selección más compacta (solo alias + ciudad) + templateSelection: data => { + if (!data.id) return data.text; + const alias = data.alias || data.text; + const ciudad = data.ciudad ? ` — ${data.ciudad}` : ''; + return $(`${alias}${ciudad}`); + }, + escapeMarkup: m => m + }); + }, + + preConfirm: () => { + const $select = $('#direccionSelect'); + const val = $select.val(); + if (!val) { + Swal.showValidationMessage( + window.languageBundle['checkout.billing-address.errors.noAddressSelected'] || 'Por favor, seleccione una dirección.' + ); + return false; + } + return val; + }, + + didClose: () => { + // Limpieza: destruir select2 para evitar fugas + const $select = $('#direccionSelect'); + if ($select.data('select2')) { + $select.select2('destroy'); + } + } + }); + + if (isDenied) { + $.get('/direcciones/direction-form', function (html) { + $('#direccionFormModalBody').html(html); + const title = $('#direccionFormModalBody #direccionForm').data('add'); + $('#direccionFormModal .modal-title').text(title); + modal.show(); + }); + } + + if (direccionId) { + // Obtén el objeto completo seleccionado + showLoader(); + let uri = `/checkout/get-address/${direccionId}`; + const response = await fetch(uri); + if (response.ok) { + const html = await response.text(); + $('#direccion-div').append(html); + $('#addBillingAddressBtn').addClass('d-none'); + if ($('#authorization-required').is(':checked')) { + $('#btn-checkout').prop('disabled', false); + } + hideLoader(); + return true; + } + hideLoader(); + return false; + } + hideLoader(); + return false; + } + + $(document).on('click', '.btn-delete-direccion', function (e) { + e.preventDefault(); + const $card = $(this).closest('.direccion-card'); + const $div = $card.parent(); + $card.remove(); + $('#addBillingAddressBtn').removeClass('d-none'); + $('#btn-checkout').prop('disabled', true); + }); + + + $('input[name="paymentMethod"]').on('change', function () { + const method = $(this).val(); + // set the hidden input value in the form + $('input[name="method"]').val(method); + }); + + $(document).on("change", ".direccionFacturacion", function () { + const isChecked = $(this).is(':checked'); + if (isChecked) { + $('.direccionFacturacionItems').removeClass('d-none'); + } else { + $('.direccionFacturacionItems').addClass('d-none'); + $('#razonSocial').val(''); + $('#tipoIdentificacionFiscal').val('DNI'); + $('#identificacionFiscal').val(''); + } + }); + + $(document).on('submit', '#direccionForm', function (e) { + e.preventDefault(); + const $form = $(this); + + $.ajax({ + url: $form.attr('action'), + type: 'POST', // PUT simulado via _method + data: $form.serialize(), + dataType: 'html', + success: function (html) { + // Si por cualquier motivo llega 200 con fragmento, lo insertamos igual + if (typeof html === 'string' && html.indexOf('id="direccionForm"') !== -1 && html.indexOf(' 0; + const title = $('#direccionFormModalBody #direccionForm').data(isEdit ? 'edit' : 'add'); + $('#direccionModal .modal-title').text(title); + return; + } + // Éxito real: cerrar y recargar tabla + $('#direccionFormModal').modal('hide'); + seleccionarDireccionEnvio(); + }, + error: function (xhr) { + // Con 422 devolvemos el fragmento con errores aquí + if (xhr.status === 422 && xhr.responseText) { + $('#direccionFormModalBody').html(xhr.responseText); + const isEdit = $('#direccionFormModalBody #direccionForm input[name="_method"][value="PUT"]').length > 0; + const title = $('#direccionFormModalBody #direccionForm').data(isEdit ? 'edit' : 'add'); + $('#direccionModal .modal-title').text(title); + return; + } + // Fallback + $('#direccionFormModalBody').html('
    Error inesperado.
    '); + } + }); + }); }); diff --git a/src/main/resources/static/assets/js/pages/imprimelibros/direcciones/list.js b/src/main/resources/static/assets/js/pages/imprimelibros/direcciones/list.js index 0e54408..b2e42a1 100644 --- a/src/main/resources/static/assets/js/pages/imprimelibros/direcciones/list.js +++ b/src/main/resources/static/assets/js/pages/imprimelibros/direcciones/list.js @@ -181,7 +181,7 @@ }); // Submit del form en el modal - $(document).on('submit', '#direccionForm', function (e) { + $(document).on('submit', '#direccionForm', function (e) { e.preventDefault(); const $form = $(this); diff --git a/src/main/resources/static/assets/js/pages/imprimelibros/pagos/pagos.js b/src/main/resources/static/assets/js/pages/imprimelibros/pagos/pagos.js new file mode 100644 index 0000000..0c8c348 --- /dev/null +++ b/src/main/resources/static/assets/js/pages/imprimelibros/pagos/pagos.js @@ -0,0 +1,293 @@ +$(() => { + + const csrfToken = document.querySelector('meta[name="_csrf"]')?.getAttribute('content'); + const csrfHeader = document.querySelector('meta[name="_csrf_header"]')?.getAttribute('content'); + if (window.$ && csrfToken && csrfHeader) { + $.ajaxSetup({ + beforeSend: function (xhr) { + xhr.setRequestHeader(csrfHeader, csrfToken); + } + }); + } + + const language = document.documentElement.lang || 'es-ES'; + + // Comprueba dependencias antes de iniciar + if (!window.DataTable) { + console.error('DataTables no está cargado aún'); + return; + } + + const table = new DataTable('#pagos-redsys-datatable', { + processing: true, + serverSide: true, + orderCellsTop: true, + pageLength: 50, + lengthMenu: [10, 25, 50, 100, 500], + language: { url: '/assets/libs/datatables/i18n/' + language + '.json' }, + responsive: true, + dom: 'lBrtip', + buttons: { + dom: { + button: { + className: 'btn btn-sm btn-outline-primary me-1' + }, + buttons: [ + { extend: 'copy' }, + { extend: 'csv' }, + { extend: 'excel' }, + { extend: 'pdf' }, + { extend: 'print' }, + { extend: 'colvis' } + ], + } + }, + ajax: { + url: '/pagos/datatable/redsys', + method: 'GET', + }, + order: [[5, 'desc']], // Ordena por fecha por defecto + columns: [ + { data: 'client', name: 'client', orderable: true }, + { data: 'gateway_order_id', name: 'payment.gatewayOrderId', orderable: true }, + { data: 'orderId', name: 'payment.orderId', orderable: true }, + { data: 'amount_cents', name: 'amountCents', orderable: true }, + { data: 'amount_cents_refund', name: 'amountCentsRefund', orderable: true }, + { data: 'created_at', name: 'createdAt', orderable: true }, + { data: 'actions', name: 'actions', orderable: false, searchable: false } + + ], + columnDefs: [{ targets: -1, orderable: false, searchable: false }] + }); + + // Fila de filtros = segunda fila del thead (index 1) + $('#pagos-redsys-datatable thead tr:eq(1) th').each(function (colIdx) { + const input = $(this).find('input'); + if (input.length === 0) return; // columnas sin filtro + + input.on('keyup change', function () { + const value = this.value; + if (table.column(colIdx).search() !== value) { + table.column(colIdx).search(value).draw(); + } + }); + }); + + $(document).on('click', '.btn-refund-payment', function () { + const dsOrderId = $(this).data('dsorderid'); + const transactionId = $(this).data('transactionid'); + const maxAmountCents = $(this).data('amount'); + // show swal confirmation with input for amount to refund + Swal.fire({ + showCancelButton: true, + buttonsStyling: false, + title: window.languageBundle['pagos.refund.title'], + text: window.languageBundle['pagos.refund.text'], + input: 'text', + confirmButtonText: window.languageBundle['app.aceptar'] || 'Seleccionar', + cancelButtonText: window.languageBundle['app.cancelar'] || 'Cancelar', + customClass: { + confirmButton: 'btn btn-secondary me-2', + cancelButton: 'btn btn-light', + }, + inputAttributes: { + min: 0, + } + }).then((result) => { + if (result.isConfirmed) { + const normalized = result.value.replace(',', '.'); + const amountToRefund = parseFloat(normalized); + if (isNaN(amountToRefund) || amountToRefund <= 0) { + showSwal('Error', window.languageBundle['pagos.refund.error.invalid-number'], 'error'); + return; + } + if (amountToRefund * 100 > maxAmountCents) { + showSwal('Error', window.languageBundle['pagos.refund.error.invalid-number'], 'error'); + return; + } + if (amountToRefund * 100 > maxAmountCents) { + showSwal('Error', window.languageBundle['pagos.refund.error.invalid-number'], 'error'); + return; + } + $.ajax({ + url: '/pagos/redsys/refund/' + transactionId, + method: 'POST', + data: { + amountCents: amountToRefund * 100 + } + }).then((response) => { + response = typeof response === 'string' ? JSON.parse(response) : response; + if (response.success) { + showSwal('Éxito', window.languageBundle['pagos.refund.success'], 'success'); + $('#pagos-redsys-datatable').DataTable().draw(); + } else { + showSwal('Error', window.languageBundle['pagos.refund.error.general'], 'error'); + $('#pagos-redsys-datatable').DataTable().draw(); + + } + }).fail(() => { + showSwal('Error', window.languageBundle['pagos.refund.error.general'], 'error'); + }); + } + }); + }); + + + const tableT = new DataTable('#pagos-transferencias-datatable', { + processing: true, + serverSide: true, + orderCellsTop: true, + pageLength: 50, + lengthMenu: [10, 25, 50, 100, 500], + language: { url: '/assets/libs/datatables/i18n/' + language + '.json' }, + responsive: true, + dom: 'lBrtip', + buttons: { + dom: { + button: { + className: 'btn btn-sm btn-outline-primary me-1' + }, + buttons: [ + { extend: 'copy' }, + { extend: 'csv' }, + { extend: 'excel' }, + { extend: 'pdf' }, + { extend: 'print' }, + { extend: 'colvis' } + ], + } + }, + ajax: { + url: '/pagos/datatable/transferencias', + method: 'GET', + }, + order: [[7, 'desc']], // Ordena por fecha por defecto + columns: [ + { data: 'client', name: 'client', orderable: true }, + { data: 'transfer_id', name: 'transfer_id', orderable: true }, + { data: 'status', name: 'status', orderable: true }, + { data: 'order_id', name: 'payment.orderId', orderable: true }, + { data: 'amount_cents', name: 'amountCents', orderable: true }, + { data: 'amount_cents_refund', name: 'amountCentsRefund', orderable: true }, + { data: 'created_at', name: 'createdAt', orderable: true }, + { data: 'processed_at', name: 'processedAt', orderable: true }, + { data: 'actions', name: 'actions', orderable: false, searchable: false } + + ], + columnDefs: [{ targets: -1, orderable: false, searchable: false }] + }); + + // Fila de filtros = segunda fila del thead (index 1) + $('#pagos-redsys-datatable thead tr:eq(1) th').each(function (colIdx) { + const input = $(this).find('input'); + if (input.length === 0) return; // columnas sin filtro + + input.on('keyup change', function () { + const value = this.value; + if (table.column(colIdx).search() !== value) { + table.column(colIdx).search(value).draw(); + } + }); + }); + + $(document).on('click', '.btn-mark-as-completed', function () { + const paymentId = $(this).data('paymentid'); + + Swal.fire({ + title: window.languageBundle['pagos.transferencia.finalizar.title'], + text: window.languageBundle['pagos.transferencia.finalizar.text'], + icon: 'warning', + showCancelButton: true, + buttonsStyling: false, + confirmButtonText: window.languageBundle['app.aceptar'] || 'Aceptar', + cancelButtonText: window.languageBundle['app.cancelar'] || 'Cancelar', + customClass: { + confirmButton: 'btn btn-secondary me-2', + cancelButton: 'btn btn-light', + } + }).then((result) => { + if (result.isConfirmed) { + $.ajax({ + url: '/pagos/transfer/completed/' + paymentId, + method: 'POST', + }).then((response) => { + response = typeof response === 'string' ? JSON.parse(response) : response; + if (response.success) { + showSwal('Éxito', window.languageBundle['pagos.transferencia.finalizar.success'], 'success'); + $('#pagos-transferencias-datatable').DataTable().draw(); + } else { + showSwal('Error', window.languageBundle['pagos.transferencia.finalizar.error.general'], 'error'); + $('#pagos-transferencias-datatable').DataTable().draw(); + } + }); + } + }); + }); + + $(document).on('click', '.btn-transfer-refund', function () { + const transferId = $(this).data('transactionid'); + const maxAmountCents = $(this).data('amount'); + // show swal confirmation with input for amount to refund + Swal.fire({ + showCancelButton: true, + buttonsStyling: false, + title: window.languageBundle['pagos.refund.title'], + text: window.languageBundle['pagos.refund.text'], + input: 'text', + confirmButtonText: window.languageBundle['app.aceptar'] || 'Seleccionar', + cancelButtonText: window.languageBundle['app.cancelar'] || 'Cancelar', + customClass: { + confirmButton: 'btn btn-secondary me-2', + cancelButton: 'btn btn-light', + }, + inputAttributes: { + min: 0, + } + }).then((result) => { + if (result.isConfirmed) { + const normalized = result.value.replace(',', '.'); + const amountToRefund = parseFloat(normalized); + if (isNaN(amountToRefund) || amountToRefund <= 0) { + showSwal('Error', window.languageBundle['pagos.refund.error.invalid-number'], 'error'); + return; + } + if (amountToRefund * 100 > maxAmountCents) { + showSwal('Error', window.languageBundle['pagos.refund.error.invalid-number'], 'error'); + return; + } + $.ajax({ + url: '/pagos/transfer/refund/' + transferId, + method: 'POST', + data: { + amountCents: amountToRefund * 100 + } + }).then((response) => { + response = typeof response === 'string' ? JSON.parse(response) : response; + if (response.success) { + showSwal('Éxito', window.languageBundle['pagos.refund.success'], 'success'); + $('#pagos-transferencias-datatable').DataTable().draw(); + } else { + showSwal('Error', window.languageBundle['pagos.refund.error.general'], 'error'); + $('#pagos-transferencias-datatable').DataTable().draw(); + + } + }).fail(() => { + showSwal('Error', window.languageBundle['pagos.refund.error.general'], 'error'); + }); + } + }); + }); + + function showSwal(title, text, icon) { + Swal.fire({ + title: title, + text: text, + icon: icon, + buttonsStyling: false, + confirmButtonText: window.languageBundle['app.aceptar'] || 'Aceptar', + customClass: { + confirmButton: 'btn btn-secondary', + } + }); + } +}); diff --git a/src/main/resources/static/assets/js/pages/invoicecreate.init.js b/src/main/resources/static/assets/js/pages/invoicecreate.init.js deleted file mode 100644 index 989c668..0000000 --- a/src/main/resources/static/assets/js/pages/invoicecreate.init.js +++ /dev/null @@ -1,559 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Invoice create init Js File -*/ - -var paymentSign = "$"; -Array.from(document.getElementsByClassName("product-line-price")).forEach(function (item) { - item.value = paymentSign +"0.00" -}); -function otherPayment() { - var paymentType = document.getElementById("choices-payment-currency").value; - paymentSign = paymentType; - - - Array.from(document.getElementsByClassName("product-line-price")).forEach(function (item) { - isUpdate = item.value.slice(1); - item.value = paymentSign + isUpdate; - }); - - recalculateCart(); -} - -var isPaymentEl = document.getElementById("choices-payment-currency"); -var choices = new Choices(isPaymentEl, { - searchEnabled: false -}); - -// Profile Img -document - .querySelector("#profile-img-file-input") - .addEventListener("change", function () { - var preview = document.querySelector(".user-profile-image"); - var file = document.querySelector(".profile-img-file-input").files[0]; - var reader = new FileReader(); - reader.addEventListener( - "load", - function () { - preview.src = reader.result; - //localStorage.setItem("invoiceLogo", reader.result); - }, - false - ); - if (file) { - reader.readAsDataURL(file); - } - }); - -flatpickr("#date-field", { - enableTime: true, - dateFormat: "d M, Y, h:i K", -}); - -isData(); - -function isData() { - var plus = document.getElementsByClassName("plus"), - minus = document.getElementsByClassName("minus"); - - if (plus) { - Array.from(plus).forEach(function (e) { - e.onclick = function (event) { - if (parseInt(e.previousElementSibling.value) < 10) { - event.target.previousElementSibling.value++; - - var itemAmount = e.parentElement.parentElement.previousElementSibling.querySelector(".product-price").value; - - var priceselection = e.parentElement.parentElement.nextElementSibling.querySelector(".product-line-price"); - - var productQty = e.parentElement.querySelector(".product-quantity").value; - - updateQuantity(productQty, itemAmount, priceselection); - } - } - }); - - } - - if (minus) { - Array.from(minus).forEach(function (e) { - e.onclick = function (event) { - if (parseInt(e.nextElementSibling.value) > 1) { - event.target.nextElementSibling.value--; - var itemAmount = e.parentElement.parentElement.previousElementSibling.querySelector(".product-price").value; - var priceselection = e.parentElement.parentElement.nextElementSibling.querySelector(".product-line-price"); - // var productQty = 1; - var productQty = e.parentElement.querySelector(".product-quantity").value; - updateQuantity(productQty, itemAmount, priceselection); - } - }; - }); - } -} - -var count = 1; - -function new_link() { - count++; - var tr1 = document.createElement("tr"); - tr1.id = count; - tr1.className = "product"; - - var delLink = - "" + - '' + - count + - "" + - '' + - '
    ' + - '' + - '
    ' + - '' + - "" + - "" + - "" + - '' + - "" + - "" + - '
    ' + - '' + - '' + - '' + - "
    " + - "" + - '' + - "
    " + - '' + - "
    " + - "" + - '' + - 'Delete' + - "" + - ""; - - tr1.innerHTML = document.getElementById("newForm").innerHTML + delLink; - - document.getElementById("newlink").appendChild(tr1); - var genericExamples = document.querySelectorAll("[data-trigger]"); - Array.from(genericExamples).forEach(function (genericExamp) { - var element = genericExamp; - new Choices(element, { - placeholderValue: "This is a placeholder set in the config", - searchPlaceholderValue: "This is a search placeholder", - }); - }); - - isData(); - remove(); - amountKeyup(); - resetRow() -} - -remove(); -/* Set rates + misc */ -var taxRate = 0.125; -var shippingRate = 65.0; -var discountRate = 0.15; - -function remove() { - Array.from(document.querySelectorAll(".product-removal a")).forEach(function (el) { - el.addEventListener("click", function (e) { - removeItem(e); - resetRow() - }); - }); -} - -function resetRow() { - - Array.from(document.getElementById("newlink").querySelectorAll("tr")).forEach(function (subItem, index) { - var incid = index + 1; - subItem.querySelector('.product-id').innerHTML = incid; - - }); -} - -/* Recalculate cart */ -function recalculateCart() { - var subtotal = 0; - - Array.from(document.getElementsByClassName("product")).forEach(function (item) { - Array.from(item.getElementsByClassName("product-line-price")).forEach(function (e) { - if (e.value) { - subtotal += parseFloat(e.value.slice(1)); - } - }); - }); - - /* Calculate totals */ - var tax = subtotal * taxRate; - var discount = subtotal * discountRate; - - var shipping = subtotal > 0 ? shippingRate : 0; - var total = subtotal + tax + shipping - discount; - - document.getElementById("cart-subtotal").value = - paymentSign + subtotal.toFixed(2); - document.getElementById("cart-tax").value = paymentSign + tax.toFixed(2); - document.getElementById("cart-shipping").value = - paymentSign + shipping.toFixed(2); - document.getElementById("cart-total").value = paymentSign + total.toFixed(2); - document.getElementById("cart-discount").value = - paymentSign + discount.toFixed(2); - document.getElementById("totalamountInput").value = - paymentSign + total.toFixed(2); - document.getElementById("amountTotalPay").value = - paymentSign + total.toFixed(2); -} - -function amountKeyup() { - - // var listArray = []; - - // listArray.push(document.getElementsByClassName('product-price')); - Array.from(document.getElementsByClassName('product-price')).forEach(function (item) { - item.addEventListener('keyup', function (e) { - - var priceselection = item.parentElement.nextElementSibling.nextElementSibling.querySelector('.product-line-price'); - - var amount = e.target.value; - var itemQuntity = item.parentElement.nextElementSibling.querySelector('.product-quantity').value; - - updateQuantity(amount, itemQuntity, priceselection); - - }); - }); -} - -amountKeyup(); -/* Update quantity */ -function updateQuantity(amount, itemQuntity, priceselection) { - var linePrice = amount * itemQuntity; - /* Update line price display and recalc cart totals */ - linePrice = linePrice.toFixed(2); - priceselection.value = paymentSign + linePrice; - - recalculateCart(); - -} - -/* Remove item from cart */ -function removeItem(removeButton) { - removeButton.target.closest("tr").remove(); - recalculateCart(); -} - -//Choise Js -var genericExamples = document.querySelectorAll("[data-trigger]"); -Array.from(genericExamples).forEach(function (genericExamp) { - var element = genericExamp; - new Choices(element, { - placeholderValue: "This is a placeholder set in the config", - searchPlaceholderValue: "This is a search placeholder", - }); -}); - -//Address -function billingFunction() { - if (document.getElementById("same").checked) { - document.getElementById("shippingName").value = - document.getElementById("billingName").value; - document.getElementById("shippingAddress").value = - document.getElementById("billingAddress").value; - document.getElementById("shippingPhoneno").value = - document.getElementById("billingPhoneno").value; - document.getElementById("shippingTaxno").value = - document.getElementById("billingTaxno").value; - } else { - document.getElementById("shippingName").value = ""; - document.getElementById("shippingAddress").value = ""; - document.getElementById("shippingPhoneno").value = ""; - document.getElementById("shippingTaxno").value = ""; - } -} - - -var cleaveBlocks = new Cleave('#cardNumber', { - blocks: [4, 4, 4, 4], - uppercase: true -}); - -var genericExamples = document.querySelectorAll('[data-plugin="cleave-phone"]'); -Array.from(genericExamples).forEach(function (genericExamp) { - var element = genericExamp; - new Cleave(element, { - delimiters: ['(', ')', '-'], - blocks: [0, 3, 3, 4] - }); -}); - -let viewobj; -var invoices_list = localStorage.getItem("invoices-list"); -var options = localStorage.getItem("option"); -var invoice_no = localStorage.getItem("invoice_no"); -var invoices = JSON.parse(invoices_list); - -if (localStorage.getItem("invoice_no") === null && localStorage.getItem("option") === null) { - viewobj = ''; - var value = "#VL" + Math.floor(11111111 + Math.random() * 99999999); - document.getElementById("invoicenoInput").value = value; -} else { - viewobj = invoices.find(o => o.invoice_no === invoice_no); -} - -// Invoice Data Load On Form -if ((viewobj != '') && (options == "edit-invoice")) { - - document.getElementById("registrationNumber").value = viewobj.company_details.legal_registration_no; - document.getElementById("companyEmail").value = viewobj.company_details.email; - document.getElementById('companyWebsite').value = viewobj.company_details.website; - new Cleave("#compnayContactno", { - prefix: viewobj.company_details.contact_no, - delimiters: ['(', ')', '-'], - blocks: [0, 3, 3, 4] - }); - document.getElementById("companyAddress").value = viewobj.company_details.address; - document.getElementById("companyaddpostalcode").value = viewobj.company_details.zip_code; - - var preview = document.querySelectorAll(".user-profile-image"); - if (viewobj.img !== ''){ - preview.src = viewobj.img; - } - - document.getElementById("invoicenoInput").value = "#VAL" + viewobj.invoice_no; - document.getElementById("invoicenoInput").setAttribute('readonly',true); - document.getElementById("date-field").value = viewobj.date; - document.getElementById("choices-payment-status").value = viewobj.status; - document.getElementById("totalamountInput").value = "$" + viewobj.order_summary.total_amount; - - document.getElementById("billingName").value = viewobj.billing_address.full_name; - document.getElementById("billingAddress").value = viewobj.billing_address.address; - new Cleave("#billingPhoneno", { - prefix: viewobj.company_details.contact_no, - delimiters: ['(', ')', '-'], - blocks: [0, 3, 3, 4] - }); - document.getElementById("billingTaxno").value = viewobj.billing_address.tax; - - document.getElementById("shippingName").value = viewobj.shipping_address.full_name; - document.getElementById("shippingAddress").value = viewobj.shipping_address.address; - new Cleave("#shippingPhoneno", { - prefix: viewobj.company_details.contact_no, - delimiters: ['(', ')', '-'], - blocks: [0, 3, 3, 4] - }); - - document.getElementById("shippingTaxno").value = viewobj.billing_address.tax; - - var paroducts_list = viewobj.prducts; - var counter = 1; - do { - counter++; - if (paroducts_list.length > 1) { - document.getElementById("add-item").click(); - } - } while (paroducts_list.length - 1 >= counter); - - var counter_1 = 1; - - setTimeout(() => { - Array.from(paroducts_list).forEach(function (element) { - document.getElementById("productName-" + counter_1).value = element.product_name; - document.getElementById("productDetails-" + counter_1).value = element.product_details; - document.getElementById("productRate-" + counter_1).value = element.rates; - document.getElementById("product-qty-" + counter_1).value = element.quantity; - document.getElementById("productPrice-" + counter_1).value = "$" + ((element.rates) * (element.quantity)); - counter_1++; - }); - }, 300); - - document.getElementById("cart-subtotal").value = "$" + viewobj.order_summary.sub_total; - document.getElementById("cart-tax").value = "$" + viewobj.order_summary.estimated_tex; - document.getElementById("cart-discount").value = "$" + viewobj.order_summary.discount; - document.getElementById("cart-shipping").value = "$" + viewobj.order_summary.shipping_charge; - document.getElementById("cart-total").value = "$" + viewobj.order_summary.total_amount; - - document.getElementById("choices-payment-type").value = viewobj.payment_details.payment_method; - document.getElementById("cardholderName").value = viewobj.payment_details.card_holder_name; - - var cleave = new Cleave('#cardNumber', { - prefix: viewobj.payment_details.card_number, - delimiter: ' ', - blocks: [4, 4, 4, 4], - uppercase: true - }); - document.getElementById("amountTotalPay").value = "$" + viewobj.order_summary.total_amount; - - document.getElementById("exampleFormControlTextarea1").value = viewobj.notes; - -} - -document.addEventListener("DOMContentLoaded", function () { - // //Form Validation - var formEvent = document.getElementById('invoice_form'); - var forms = document.getElementsByClassName('needs-validation'); - - // Loop over them and prevent submission - formEvent.addEventListener("submit", function (event) { - event.preventDefault(); - - // get fields value - var i_no = (document.getElementById("invoicenoInput").value).slice(4); - var email = document.getElementById("companyEmail").value; - var date = document.getElementById("date-field").value; - var invoice_amount = (document.getElementById("totalamountInput").value).slice(1); - var status = document.getElementById("choices-payment-status").value; - var billing_address_full_name = document.getElementById("billingName").value; - var billing_address_address = document.getElementById("billingAddress").value; - var billing_address_phone = (document.getElementById("billingPhoneno").value).replace(/[^0-9]/g, ""); - var billing_address_tax = document.getElementById("billingTaxno").value; - var shipping_address_full_name = document.getElementById("shippingName").value; - var shipping_address_address = document.getElementById("shippingAddress").value; - var shipping_address_phone = (document.getElementById("shippingPhoneno").value).replace(/[^0-9]/g, ""); - var shipping_address_tax = document.getElementById("shippingTaxno").value; - var payment_details_payment_method = document.getElementById("choices-payment-type").value; - var payment_details_card_holder_name = document.getElementById("cardholderName").value; - var payment_details_card_number = (document.getElementById("cardNumber").value).replace(/[^0-9]/g, ""); - var payment_details_total_amount = (document.getElementById("amountTotalPay").value).slice(1); - var company_details_legal_registration_no = (document.getElementById("registrationNumber").value).replace(/[^0-9]/g, ""); - var company_details_email = document.getElementById("companyEmail").value; - var company_details_website = document.getElementById('companyWebsite').value; - var company_details_contact_no = (document.getElementById("compnayContactno").value).replace(/[^0-9]/g, ""); - var company_details_address = document.getElementById("companyAddress").value; - var company_details_zip_code = document.getElementById("companyaddpostalcode").value; - var order_summary_sub_total = (document.getElementById("cart-subtotal").value).slice(1); - var order_summary_estimated_tex = (document.getElementById("cart-tax").value).slice(1); - var order_summary_discount = (document.getElementById("cart-discount").value).slice(1); - var order_summary_shipping_charge = (document.getElementById("cart-shipping").value).slice(1); - var order_summary_total_amount = (document.getElementById("cart-total").value).slice(1); - var notes = document.getElementById("exampleFormControlTextarea1").value; - - // get product value and make array - var products = document.getElementsByClassName("product"); - var count = 1; - var new_product_obj = []; - Array.from(products).forEach(element => { - var product_name = element.querySelector("#productName-"+count).value; - var product_details = element.querySelector("#productDetails-"+count).value; - var product_rate = parseInt(element.querySelector("#productRate-"+count).value); - var product_qty = parseInt(element.querySelector("#product-qty-"+count).value); - var product_price = (element.querySelector("#productPrice-"+count).value).split("$");; - - var product_obj = { - product_name: product_name, - product_details: product_details, - rates: product_rate, - quantity: product_qty, - amount: parseInt(product_price[1]) - } - new_product_obj.push(product_obj); - count++; - }); - - if (formEvent.checkValidity() === false) { - formEvent.classList.add("was-validated"); - } else { - if ((options == "edit-invoice") && (invoice_no == i_no)) { - objIndex = invoices.findIndex((obj => obj.invoice_no == i_no)); - - invoices[objIndex].invoice_no = i_no; - invoices[objIndex].customer = billing_address_full_name; - invoices[objIndex].img = ''; - invoices[objIndex].email = email; - invoices[objIndex].date = date; - invoices[objIndex].invoice_amount = invoice_amount; - invoices[objIndex].status = status; - invoices[objIndex].billing_address = { - full_name: billing_address_full_name, - address: billing_address_address, - phone: billing_address_phone, - tax: billing_address_tax - }; - invoices[objIndex].shipping_address = { - full_name: shipping_address_full_name, - address: shipping_address_address, - phone: shipping_address_phone, - tax: shipping_address_tax - }; - invoices[objIndex].payment_details = { - payment_method: payment_details_payment_method, - card_holder_name: payment_details_card_holder_name, - card_number: payment_details_card_number, - total_amount: payment_details_total_amount - }; - invoices[objIndex].company_details = { - legal_registration_no: company_details_legal_registration_no, - email: company_details_email, - website: company_details_website, - contact_no: company_details_contact_no, - address: company_details_address, - zip_code: company_details_zip_code - }; - invoices[objIndex].order_summary = { - sub_total: order_summary_sub_total, - estimated_tex: order_summary_estimated_tex, - discount: order_summary_discount, - shipping_charge: order_summary_shipping_charge, - total_amount: order_summary_total_amount, - }; - invoices[objIndex].prducts = new_product_obj; - invoices[objIndex].notes = notes; - - localStorage.removeItem("invoices-list"); - localStorage.removeItem("option"); - localStorage.removeItem("invoice_no"); - localStorage.setItem("invoices-list", JSON.stringify(invoices)); - } else { - var new_data_object = { - invoice_no: i_no, - customer: billing_address_full_name, - img: '', - email: email, - date: date, - invoice_amount: invoice_amount, - status: status, - billing_address: { - full_name: billing_address_full_name, - address: billing_address_address, - phone: billing_address_phone, - tax: billing_address_tax - }, - shipping_address: { - full_name: shipping_address_full_name, - address: shipping_address_address, - phone: shipping_address_phone, - tax: shipping_address_tax - }, - payment_details: { - payment_method: payment_details_payment_method, - card_holder_name: payment_details_card_holder_name, - card_number: payment_details_card_number, - total_amount: payment_details_total_amount - }, - company_details: { - legal_registration_no: company_details_legal_registration_no, - email: company_details_email, - website: company_details_website, - contact_no: company_details_contact_no, - address: company_details_address, - zip_code: company_details_zip_code - }, - order_summary:{ - sub_total: order_summary_sub_total, - estimated_tex: order_summary_estimated_tex, - discount: order_summary_discount, - shipping_charge: order_summary_shipping_charge, - total_amount: order_summary_total_amount - }, - prducts: new_product_obj, - notes: notes - }; - localStorage.setItem("new_data_object", JSON.stringify(new_data_object)); - } - window.location.href = "apps-invoices-list.html"; - } - }); -}); diff --git a/src/main/resources/static/assets/js/pages/invoicedetails.js b/src/main/resources/static/assets/js/pages/invoicedetails.js deleted file mode 100644 index 57dcfc9..0000000 --- a/src/main/resources/static/assets/js/pages/invoicedetails.js +++ /dev/null @@ -1,131 +0,0 @@ -function tConvert(time) { - var d = new Date(time); - time_s = (d.getHours() + ':' + d.getMinutes()); - var t = time_s.split(":"); - var hours = t[0]; - var minutes = t[1]; - var newformat = hours >= 12 ? 'PM' : 'AM'; - hours = hours % 12; - hours = hours ? hours : 12; - minutes = minutes < 10 ? '0' + minutes : minutes; - return (hours + ':' + minutes + ' ' + newformat); -} - -var str_dt = function formatDate(date) { - var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - var d = new Date(date), - month = '' + monthNames[(d.getMonth())], - day = '' + d.getDate(), - year = d.getFullYear(); - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - return [day + " " + month, year].join(', '); -}; - -if ((localStorage.getItem("invoices-list") !== null) && (localStorage.getItem("option") !== null) && (localStorage.getItem("invoice_no") !== null)) { - - var invoices_list = localStorage.getItem("invoices-list"); - var options = localStorage.getItem("option"); - var invoice_no = localStorage.getItem("invoice_no"); - var invoices = JSON.parse(invoices_list); - - let viewobj = invoices.find(o => o.invoice_no === invoice_no); - - if ((viewobj != '') && (options == "view-invoice")) { - let badge; - switch (viewobj.status) { - case 'Paid': - badge = "success"; - break; - case 'Refund': - badge = "primary"; - break; - case 'Unpaid': - badge = "warning"; - break; - case 'Cancel': - badge = "danger"; - }; - - document.getElementById("legal-register-no").innerHTML = viewobj.company_details.legal_registration_no; - document.getElementById("email").innerHTML = viewobj.company_details.email; - document.getElementById('website').href = viewobj.company_details.website; - document.getElementById("website").innerHTML = viewobj.company_details.website; - document.getElementById("contact-no").innerHTML = viewobj.company_details.contact_no; - document.getElementById("address-details").innerHTML = viewobj.company_details.address; - document.getElementById("zip-code").innerHTML = viewobj.company_details.zip_code; - - document.getElementById("invoice-no").innerHTML = viewobj.invoice_no; - document.getElementById("invoice-date").innerHTML = str_dt(viewobj.date); - document.getElementById("invoice-time").innerHTML = tConvert(viewobj.date); - document.getElementById("payment-status").innerHTML = viewobj.status; - document.getElementById("payment-status").classList.replace("badge-soft-success", 'badge-soft-' + badge); - document.getElementById("total-amount").innerHTML = viewobj.invoice_amount; - - document.getElementById("billing-name").innerHTML = viewobj.billing_address.full_name; - document.getElementById("billing-address-line-1").innerHTML = viewobj.billing_address.address; - document.getElementById("billing-phone-no").innerHTML = viewobj.billing_address.phone; - document.getElementById("billing-tax-no").innerHTML = viewobj.billing_address.tax; - - document.getElementById("shipping-name").innerHTML = viewobj.shipping_address.full_name; - document.getElementById("shipping-address-line-1").innerHTML = viewobj.shipping_address.address; - document.getElementById("shipping-phone-no").innerHTML = viewobj.shipping_address.phone; - - document.getElementById("products-list").innerHTML = ""; - var paroducts_list = viewobj.prducts; - var counter = 1; - Array.from(paroducts_list).forEach(function (element) { - product_data = ` - - ` + counter + ` - - ` + element.product_name + ` -

    ` + element.product_details + `

    - - ` + element.rates + ` - ` + element.quantity + ` - $` + element.amount + ` - `; - document.getElementById("products-list").innerHTML += product_data; - counter++; - }); - var order_summary = ` - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Sub Total$` + viewobj.order_summary.sub_total + `
    Estimated Tax (12.5%)$` + viewobj.order_summary.estimated_tex + `
    Discount (VELZON15)- $` + viewobj.order_summary.discount + `
    Shipping Charge$` + viewobj.order_summary.shipping_charge + `
    Total Amount$` + viewobj.order_summary.total_amount + `
    - - `; - document.getElementById("products-list").innerHTML += order_summary; - document.getElementById("payment-method").innerHTML = viewobj.payment_details.payment_method; - document.getElementById("card-holder-name").innerHTML = viewobj.payment_details.card_holder_name; - document.getElementById("card-number").innerHTML = viewobj.payment_details.card_number; - document.getElementById("card-total-amount").innerHTML = viewobj.payment_details.total_amount; - document.getElementById("note").innerHTML = viewobj.notes; - } -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/invoiceslist.init.js b/src/main/resources/static/assets/js/pages/invoiceslist.init.js deleted file mode 100644 index 9e723c9..0000000 --- a/src/main/resources/static/assets/js/pages/invoiceslist.init.js +++ /dev/null @@ -1,1883 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: invoceslist init js -*/ - -// list js - -function getTime(params) { - params = new Date(params); - if (params.getHours() != null) { - var hour = params.getHours(); - var minute = (params.getMinutes()) ? params.getMinutes() : 00; - return hour + ":" + minute; - } -} - -function tConvert(time) { - var d = new Date(time); - time_s = (d.getHours() + ':' + d.getMinutes()); - var t = time_s.split(":"); - var hours = t[0]; - var minutes = t[1]; - var newformat = hours >= 12 ? 'PM' : 'AM'; - hours = hours % 12; - hours = hours ? hours : 12; - minutes = minutes < 10 ? '0' + minutes : minutes; - return (hours + ':' + minutes + ' ' + newformat); -} - -var str_dt = function formatDate(date) { - var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" - ]; - var d = new Date(date), - month = '' + monthNames[(d.getMonth())], - day = '' + d.getDate(), - year = d.getFullYear(); - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - return [day + " " + month, year].join(', '); -}; - -// new Date(y, m, d + 23, 20, 0), -var date = new Date(); -var d = date.getDate(); -var m = date.getMonth(); -var y = date.getFullYear(); -var qty = 0; -var rate = 0; -var Invoices = [{ - invoice_no: '25000351', - customer: 'Valentine Morin', - img: 'avatar-1.jpg', - email: "euismod.enim@outlook.net", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Valentine Morin', - address: '5114 Adipiscing St. Puno United States 46782', - phone: '(926) 817-7835', - tax: '123456789' - }, - shipping_address: { - full_name: 'Quamar Payne', - address: '534-1477 Non, Av. Bury St. Edmunds France 10846', - phone: '(926) 817-7835', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Reese Jacobs', - card_number: '4024007179348742', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000352', - customer: 'Brody Holman', - img: 'avatar-2.jpg', - email: "metus@protonmail.org", - date: new Date(2021, 5, d - 23, 21, 58), - invoice_amount: 875, - status: 'Unpaid', - billing_address: { - full_name: 'Brody Holman', - address: 'P.O. Box 900 Ireland, 6694 Ullamcorper Avenue Port Pirie 37176', - phone: '1-862-423-3347', - tax: '123456789' - }, - shipping_address: { - full_name: 'Elijah Galloway', - address: '7288 Dignissim Rd. Villa Alegre Germany 891315', - phone: '1-862-423-3347', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Rashawn Kuhn', - card_number: '4916669499578927', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000353', - customer: 'Jolie Hood', - img: 'avatar-3.jpg', - email: "nunc.nulla@yahoo.edu", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Jolie Hood', - address: 'Ap #957-7519 Vel, Belgium St. Diêm Điền 88188-296', - phone: '1-634-649-4101', - tax: '123456789' - }, - shipping_address: { - full_name: 'MacKensie Peterson', - address: '572-7561 Tempus Ave Alajuela Spain 86558', - phone: '1-634-649-4101', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: "Izaiah O'Kon", - card_number: '4486013431082211', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000354', - customer: 'Buckminster Wong', - img: 'avatar-4.jpg', - email: "morbi.quis@protonmail.org", - date: new Date(2021, 8, d - 22, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Buckminster Wong', - address: '983-8399 Egestas, Rd Spain. Penza 6596', - phone: '(922) 264-4841', - tax: '123456789' - }, - shipping_address: { - full_name: 'Emerson Riggs', - address: '916-4370 Aliquet Avenue Nordhorn Spain 3200', - phone: '(922) 264-4841', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Felicity McGlynn', - card_number: '4532135177402156', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000355', - customer: 'Howard Lyons', - img: '', - email: "neque.sed.dictum@icloud.org", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Refund', - billing_address: { - full_name: 'Howard Lyons', - address: 'Ap #552-1397 Ac Rd Germany. Barmouth 8574', - phone: '1-434-874-6805', - tax: '123456789' - }, - shipping_address: { - full_name: 'Britanni Daniel', - address: 'P.O. Box 998, 9293 Quisque Avenue Puerto Montt Poland 82862', - phone: '1-434-874-6805', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'David Gleason', - card_number: '4024007183253102', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000356', - customer: 'Howard Oneal', - img: 'avatar-6.jpg', - email: "porttitor.tellus.non@yahoo.net", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Howard Oneal', - address: '5642 Aliquam, Avenue Zielona Costa Rica Góra 21204', - phone: '1-546-878-8131', - tax: '123456789' - }, - shipping_address: { - full_name: 'Salvador Carney', - address: '715-6973 Non St. Samara Peru 10513', - phone: '1-546-878-8131', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Reta Lang', - card_number: '4716482226172291', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000357', - customer: 'Jena Hall', - img: 'avatar-7.jpg', - email: "lectus.sit.amet@protonmail.edu", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Cancel', - billing_address: { - full_name: 'Jena Hall', - address: 'P.O. Box 332 Italy, 5256 Dignissim St. Juazeiro do Norte 646442', - phone: '(587) 848-3170', - tax: '123456789' - }, - shipping_address: { - full_name: 'Kieran Holland', - address: '150-7530 Egestas Av. Panchià Russian Federation 16807', - phone: '(587) 848-3170', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Donna Hilpert', - card_number: '4485110978669599', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000358', - customer: 'Paki Edwards', - img: 'avatar-8.jpg', - email: "dictum.phasellus.in@hotmail.org", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Paki Edwards', - address: '2935 Senectus Av. Tvedestrand Germany 66479', - phone: '(287) 406-9128', - tax: '123456789' - }, - shipping_address: { - full_name: 'Yoshio Skinner', - address: '101-9784 Metus Rd. Minitonas Mexico 19-154', - phone: '(287) 406-9128', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Evelyn Miller', - card_number: '4609615071890505', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000359', - customer: 'Christian Cardenas', - img: 'avatar-1.jpg', - email: "id.erat@aol.org", - date: new Date(2022, 1, d - 20, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Christian Cardenas', - address: '414-240 Odio. Rd Vietnam. Louisville 41715', - phone: '1-681-342-7158', - tax: '123456789' - }, - shipping_address: { - full_name: 'Linus Pitts', - address: 'Ap #280-7347 Libero. Rd. Yurimaguas Italy 881484', - phone: '1-681-342-7158', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Cleora Cole', - card_number: '4011376293886159', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000360', - customer: 'Yoshi Guerra', - img: 'avatar-2.jpg', - email: "sem.magna.nec@hotmail.ca", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Yoshi Guerra', - address: 'Ap #322-2982 Lacinia Road India Moss 309511', - phone: '1-514-596-7650', - tax: '123456789' - }, - shipping_address: { - full_name: 'Otto Farrell', - address: 'Ap #827-2319 Eu Ave Bima Norway 1663', - phone: '1-514-596-7650', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Blaise Quigley', - card_number: '4929663041722401', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000361', - customer: 'Hilel Gillespie', - img: 'avatar-3.jpg', - email: "enim.nunc@yahoo.edu", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Hilel Gillespie', - address: '848-2883 At Street Kalisz United Kingdom 687132', - phone: '(451) 816-7296', - tax: '123456789' - }, - shipping_address: { - full_name: 'Dacey Villarreal', - address: '292-7088 In Road Rawalakot New Zealand 6842', - phone: '(451) 816-7296', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'VISA', - card_holder_name: 'Hollie Zboncak', - card_number: '4828772787474622', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000362', - customer: 'Randall Stafford', - img: 'avatar-4.jpg', - email: "eget.lacus@outlook.org", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Randall Stafford', - address: 'P.O. Box 583 Colombia, 2640 Aliquam Ave Toruń 456387', - phone: '1-340-324-3678', - tax: '123456789' - }, - shipping_address: { - full_name: 'Shana Hudson', - address: 'Ap #973-232 Non, St. Tibet Sweden GW0R 2VR', - phone: '1-340-324-3678', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Kameron Barrows', - card_number: '2720686256191298', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000363', - customer: 'Fletcher Jones', - img: 'avatar-5.jpg', - email: "sapien.cursus@google.couk", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Fletcher Jones', - address: 'P.O. Box 951 New Zealand, 1480 Venenatis Ave Swat 152307', - phone: '(433) 436-0003', - tax: '123456789' - }, - shipping_address: { - full_name: 'Fitzgerald Rice', - address: '314-372 Facilisis Rd. Nancy Turkey E2K 1HY', - phone: '(433) 436-0003', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Gus Thiel', - card_number: '2221197016300538', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000364', - customer: 'Donovan Sparks', - img: 'avatar-6.jpg', - email: "urna.convallis@yahoo.net", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Donovan Sparks', - address: '176-4856 Hendrerit Av. France San Juan de Girón 58811-629', - phone: '1-658-684-1084', - tax: '123456789' - }, - shipping_address: { - full_name: 'Georgia Nixon', - address: 'Ap #599-1431 Non, St. Cartagena del Chairá United States 2548', - phone: '1-658-684-1084', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Emily Stokes', - card_number: '2221426370404515', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000365', - customer: 'Sage Gardner', - img: 'avatar-7.jpg', - email: "consequat.enim@google.com", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Sage Gardner', - address: 'Ap #193-730 Orci, Chile Street San José de Alajuela 8317', - phone: '(470) 328-1309', - tax: '123456789' - }, - shipping_address: { - full_name: 'Melinda Banks', - address: '5778 Aliquam Road Ofena Italy 11218', - phone: '(470) 328-1309', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Salvador Gerlach', - card_number: '5347125175526959', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000366', - customer: 'Paki Grimes', - img: 'avatar-1.jpg', - email: "ante.lectus.convallis@google.com", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Paki Grimes', - address: '516-3641 Tincidunt St. Pakistan Zamora de Hidalgo 6554', - phone: '(726) 823-5568', - tax: '123456789' - }, - shipping_address: { - full_name: 'Shaeleigh Wilkins', - address: '961-3054 Integer St. Abergele United Kingdom 6746', - phone: '(726) 823-5568', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Marilyne Swift', - card_number: '2221357276228023', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000367', - customer: 'James Diaz', - img: 'avatar-2.jpg', - email: "nascetur@yahoo.com", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'James Diaz', - address: 'Ap #160-8536 Ante St Colombia. Santa Coloma de Gramenet 19475', - phone: '1-989-241-7715', - tax: '123456789' - }, - shipping_address: { - full_name: 'Julian Tanner', - address: '630-5275 Quis Street Kraków Canada E39 0RE', - phone: '1-989-241-7715', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Kraig Prohaska', - card_number: '2221381107199906', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000368', - customer: 'Karen Monroe', - img: 'avatar-3.jpg', - email: "ac.ipsum@google.com", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Karen Monroe', - address: '486-3233 Quis Road Burnie Costa Rica 82926', - phone: '(131) 702-8456', - tax: '123456789' - }, - shipping_address: { - full_name: 'Jescie Keller', - address: '256-3596 Fermentum Road Salzburg United States 86-910', - phone: '(131) 702-8456', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Domenic Kassulke', - card_number: '5576137153087732', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000369', - customer: 'Vincent Weeks', - img: 'avatar-4.jpg', - email: "metus.facilisis@hotmail.edu", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Vincent Weeks', - address: '128-7206 Sit Street Bathurst Indonesia 812326', - phone: '1-361-716-4822', - tax: '123456789' - }, - shipping_address: { - full_name: 'Jonah Hayden', - address: 'Ap #315-5686 Luctus. Rd. Samaniego Canada 482995', - phone: '1-361-716-4822', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Abner Muller', - card_number: '5322044544430471', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000370', - customer: 'Miriam Dickson', - img: 'avatar-5.jpg', - email: "nunc.ac@icloud.ca", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Miriam Dickson', - address: '1747 Dui, Ave Springdale Russian Federation 67155', - phone: '(215) 293-4168', - tax: '123456789' - }, - shipping_address: { - full_name: 'Eaton Buckley', - address: '846-7108 Orci. Road Ukkel India 624087', - phone: '(215) 293-4168', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Elyse Green', - card_number: '5393850427187200', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000371', - customer: 'Ashton Head', - img: '', - email: "cras@outlook.edu", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Ashton Head', - address: '735-6864 Mauris Ave Linz South Korea 39964', - phone: '(256) 774-0737', - tax: '123456789' - }, - shipping_address: { - full_name: 'Lani Ashley', - address: 'P.O. Box 451, 696 Metus Avenue Jaboatão dos Guararapes Colombia 391846', - phone: '(256) 774-0737', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Wilhelmine Cummerata', - card_number: '5529776760187837', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}, { - invoice_no: '25000371', - customer: 'Linus Martin', - img: 'avatar-2.jpg', - email: "fringilla.est.mauris@google.edu", - date: new Date(2021, 3, d - 23, 21, 58), - invoice_amount: 875, - status: 'Paid', - billing_address: { - full_name: 'Linus Martin', - address: '907-233 Vehicula. Road Vietnam Vienna 8231', - phone: '1-544-454-6888', - tax: '123456789' - }, - shipping_address: { - full_name: 'Yuri Allison', - address: 'Ap #769-2743 Pede. Road Gönen Spain 83472-82897', - phone: '1-544-454-6888', - tax: '123456789' - }, - prducts: [{ - product_name: 'Sweatshirt for Men (Pink)', - product_details: 'Graphic Print Men & Women Sweatshirt', - rates: (rate = 119.99), - quantity: (qty = 2), - amount: (rate * qty) - }, - { - product_name: 'Noise NoiseFit Endure Smart Watch', - product_details: '32.5mm (1.28 Inch) TFT Color Touch Display', - rates: (rate = 94.99), - quantity: (qty = 1), - amount: (rate * qty) - }, - { - product_name: '350 ml Glass Grocery Container', - product_details: 'Glass Grocery Container (Pack of 3, White)', - rates: (rate = 24.99), - quantity: (qty = 1), - amount: (rate * qty) - } - ], - payment_details: { - payment_method: 'MasterCard', - card_holder_name: 'Tania Price', - card_number: '5336874146007028', - total_amount: 415.96 - }, - company_details: { - legal_registration_no: "987654", - email: 'velzon@themesbrand.com', - website: 'www.themesbrand.com', - contact_no: '0123456789', - address: 'California, United States', - zip_code: '90201' - }, - order_summary: { - sub_total: 359.96, - estimated_tex: 44.99, - discount: 53.99, - shipping_charge: 65.00, - total_amount: 415.96, - }, - notes: 'All accounts are to be paid within 7 days from receipt of invoice. To be paid by cheque or credit card or direct payment online. If account is not paid within 7 days the credits details supplied as confirmation of work undertaken will be charged the agreed quoted fee noted above.' -}]; - - -if ((localStorage.getItem("invoices-list") === null) && (localStorage.getItem("new_data_object") === null)) { - Invoices = Invoices; -} else if ((localStorage.getItem("invoices-list") === null) && (localStorage.getItem("new_data_object") !== null)) { - var invoice_new_obj = JSON.parse(localStorage.getItem("new_data_object")); - Invoices.push(invoice_new_obj); - localStorage.removeItem("new_data_object"); -} else { - Invoices = []; - Invoices = JSON.parse(localStorage.getItem("invoices-list")); - if (localStorage.getItem("new_data_object") !== null) { - var invoice_new_obj = JSON.parse(localStorage.getItem("new_data_object")); - Invoices.push(invoice_new_obj); - localStorage.removeItem("new_data_object"); - } - localStorage.removeItem("invoices-list"); -} - -//ist form-check-all -Array.from(Invoices).forEach(function (raw) { - let badge; - switch (raw.status) { - case 'Paid': - badge = "success"; - break; - case 'Refund': - badge = "primary"; - break; - case 'Unpaid': - badge = "warning"; - break; - case 'Cancel': - badge = "danger"; - } - if (raw.img) { - var avatar_ = ``; - } else { - var avtar_title = (raw.customer).split(" "); - var letters = null; - if (avtar_title.length >= 2) { - var first_letter = avtar_title[0].slice(0, 1); - var secont_letter = avtar_title[1].slice(0, 1); - letters = first_letter + secont_letter - } else { - var first_letter = avtar_title[0].slice(0, 1); - letters = first_letter - } - var avatar_ = `
    ` + letters + `
    `; - } - - var tableRawData = ` - -
    - -
    - - #VL` + raw.invoice_no + ` - -
    - ` + avatar_ + raw.customer + ` -
    - - ` + raw.email + ` - USA - ` + str_dt(raw.date) + ` ` + tConvert(raw.date) + ` - $` + (raw.invoice_amount) + ` - ` + raw.status + ` - - - - - `; - - document.getElementById('invoice-list-data').innerHTML += tableRawData; -}); - -document.addEventListener("DOMContentLoaded", function () { - var genericExamples = document.querySelectorAll('[data-plugin="choices"]'); - Array.from(genericExamples).forEach(function (genericExamp) { - var element = genericExamp; - new Choices(element, { - placeholderValue: "This is a placeholder set in the config", - searchPlaceholderValue: "Search results here", - }); - }); -}); - -flatpickr("#datepicker-range", { - mode: "range", - dateFormat: "d M, Y", -}); - -flatpickr("#date-field", { - dateFormat: "d M, Y", -}); - -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; - for (var i = 0; i < checkboxes.length; i++) { - checkboxes[i].checked = this.checked; - if (checkboxes[i].checked) { - checkboxes[i].closest("tr").classList.add("table-active"); - } else { - checkboxes[i].closest("tr").classList.remove("table-active"); - } - } - - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; - }; -} - -var perPage = 8; - -//Table -var options = { - valueNames: [ - "id", - "customer_name", - "email", - "country", - "date", - "invoice_amount", - "status", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2, - }), - ], -}; - -// Init list -var invoiceList = new List("invoiceList", options).on( - "updated", - function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - document.querySelector(".pagination-prev.disabled") ? - document.querySelector(".pagination-prev.disabled").classList.remove("disabled") : ""; - document.querySelector(".pagination-next.disabled") ? - document.querySelector(".pagination-next.disabled").classList.remove("disabled") : ""; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - if (list.matchingItems.length == perPage) { - document.querySelector(".pagination.listjs-pagination").firstElementChild.children[0].click(); - } - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } - } -); - -isCount = new DOMParser().parseFromString( - invoiceList.items.slice(-1)[0]._values.id, - "text/html" -); - -var isValue = isCount.body.firstElementChild.innerHTML; - -var idField = document.getElementById("orderId"), - customerNameField = document.getElementById("customername-field"), - emailField = document.getElementById("email-field"), - dateField = document.getElementById("date-field"), - countryField = document.getElementById("country-field"), - statusField = document.getElementById("delivered-status"), - addBtn = document.getElementById("add-btn"), - editBtn = document.getElementById("edit-btn"), - removeBtns = document.getElementsByClassName("remove-item-btn"), - editBtns = document.getElementsByClassName("edit-item-btn"); -refreshCallbacks(); -filterContact("All"); - -function filterContact(isValue) { - var values_status = isValue; - invoiceList.filter(function (data) { - var statusFilter = false; - matchData = new DOMParser().parseFromString( - data.values().status, - "text/html" - ); - var status = matchData.body.firstElementChild.innerHTML; - if (status == "All" || values_status == "All") { - statusFilter = true; - } else { - statusFilter = status == values_status; - } - return statusFilter; - }); - - invoiceList.update(); -} - -function updateList() { - var values_status = document.querySelector("input[name=status]:checked").value; - data = userList.filter(function (item) { - var statusFilter = false; - if (values_status == "All") { - statusFilter = true; - } else { - statusFilter = item.values().sts == values_status; - } - return statusFilter; - }); - userList.update(); -} - -var table = document.getElementById("invoiceTable"); -// save all tr -var tr = table.getElementsByTagName("tr"); -var trlist = table.querySelectorAll(".list tr"); - -function SearchData() { - var isstatus = document.getElementById("idStatus").value; - var pickerVal = document.getElementById("datepicker-range").value; - - var date1 = pickerVal.split(" to ")[0]; - var date2 = pickerVal.split(" to ")[1]; - - invoiceList.filter(function (data) { - matchData = new DOMParser().parseFromString( - data.values().status, - "text/html" - ); - var status = matchData.body.firstElementChild.innerHTML; - var statusFilter = false; - var dateFilter = false; - - if (status == "all" || isstatus == "all") { - statusFilter = true; - } else { - statusFilter = status == isstatus; - } - - if (new Date(data.values().date.slice(0, 12)) >= new Date(date1) && new Date(data.values().date.slice(0, 12)) <= new Date(date2)) { - dateFilter = true; - } else { - dateFilter = false; - } - - if (statusFilter && dateFilter) { - return statusFilter && dateFilter; - } else if (statusFilter && pickerVal == "") { - return statusFilter; - } else if (dateFilter && pickerVal == "") { - return dateFilter; - } - }); - invoiceList.update(); -} - -function ischeckboxcheck() { - Array.from(document.getElementsByName("chk_child")).forEach(function (x) { - x.addEventListener("change", function (e) { - if (x.checked == true) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - - var checkedCount = document.querySelectorAll('[name="chk_child"]:checked').length; - if (e.target.closest("tr").classList.contains("table-active")) { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } - }); - }); -} - -function refreshCallbacks() { - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = invoiceList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - invoiceList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecord-close").click(); - }); - } - }); - }); - }); -} - -document.querySelector("#invoiceList").addEventListener("click", function () { - ischeckboxcheck(); -}); - -function clearFields() { - customerNameField.value = ""; - emailField.value = ""; - dateField.value = ""; - countryField.value = ""; -} - -document.querySelector(".pagination-next").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click() : "" : ""; -}); - -document.querySelector(".pagination-prev").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click() : "" : ""; -}); - -function ViewInvoice(data) { - var invoice_no = data.getAttribute('data-id'); - localStorage.setItem("invoices-list", JSON.stringify(Invoices)); - localStorage.setItem("option", "view-invoice"); - localStorage.setItem("invoice_no", invoice_no); - window.location.assign("apps-invoices-details") -} - -function EditInvoice(data) { - var invoice_no = data.getAttribute('data-id'); - localStorage.setItem("invoices-list", JSON.stringify(Invoices)); - localStorage.setItem("option", "edit-invoice"); - localStorage.setItem("invoice_no", invoice_no); - window.location.assign("apps-invoices-create") -} - -// Delete Multiple Records -function deleteMultiple() { - ids_array = []; - var items = document.getElementsByName('chk_child'); - for (i = 0; i < items.length; i++) { - if (items[i].checked == true) { - ids_array.push(items[i].value); - } - } - - if (typeof ids_array !== 'undefined' && ids_array.length > 0) { - Swal.fire({ - title: "Are you sure?", - text: "You won't be able to revert this!", - icon: "warning", - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - confirmButtonText: "Yes, delete it!", - buttonsStyling: false, - showCloseButton: true - }).then(function (result) { - if (result.value) { - for (i = 0; i < ids_array.length; i++) { - invoiceList.remove("id", `${ids_array[i]}`); - } - document.getElementById("remove-actions").style.display = 'none'; - document.getElementById("checkAll").checked = false; - Swal.fire({ - title: 'Deleted!', - text: 'Your data has been deleted.', - icon: 'success', - confirmButtonClass: 'btn btn-info w-xs mt-2', - buttonsStyling: false - }); - } - }); - } else { - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/job-application.init.js b/src/main/resources/static/assets/js/pages/job-application.init.js deleted file mode 100644 index b9aac74..0000000 --- a/src/main/resources/static/assets/js/pages/job-application.init.js +++ /dev/null @@ -1,528 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Job application init Js File -*/ - -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; - for (var i = 0; i < checkboxes.length; i++) { - checkboxes[i].checked = this.checked; - if (checkboxes[i].checked) { - checkboxes[i].closest("tr").classList.add("table-active"); - } else { - checkboxes[i].closest("tr").classList.remove("table-active"); - } - } - - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; - }; -} - -var isChoiceEl = document.getElementById("idStatus"); -var choices = new Choices(isChoiceEl, { - searchEnabled: false, -}); - -var isTypeEl = document.getElementById("idType"); -var choices = new Choices(isTypeEl, { - searchEnabled: false, -}); - -var perPage = 8; -var editlist = false; - -//Table -var options = { - valueNames: [ - "id", - "company", - "designation", - "date", - "contacts", - "type", - "status", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2, - }), - ], -}; - - -// Init list -var applicationList = new List("applicationList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - document.querySelector(".pagination-prev.disabled") ?- - - document.querySelector(".pagination-prev.disabled").classList.remove("disabled") : ""; - document.querySelector(".pagination-next.disabled") ? - document.querySelector(".pagination-next.disabled").classList.remove("disabled") : ""; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length == perPage) { - document.querySelector(".pagination.listjs-pagination").firstElementChild.children[0].click() - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } -}); - - -const xhttp = new XMLHttpRequest(); -xhttp.onload = function () { - var json_records = JSON.parse(this.responseText); - Array.from(json_records).forEach(function(element){ - applicationList.add({ - id: '#VZ'+element.id+'', - company: '
    \ -
    \ - \ -
    \ -
    '+element.company[1]+'
    \ -
    ', - designation: element.designation, - date: element.date, - contacts: element.contacts, - type:element.type, - status: isStatus(element.status) - }); - applicationList.sort('id', { order: "desc" }); - refreshCallbacks(); - }); - applicationList.remove("id", `#VZ001`); -} -xhttp.open("GET", "assets/json/application-list.json"); -xhttp.send(); - -function isStatus(val) { - switch (val) { - case "Approved": - return ('' + val + ""); - case "New": - return ('' + val + ""); - case "Pending": - return ('' + val + ""); - case "Rejected": - return ('' + val + ""); - } -} - -// companylogo image -document.querySelector("#companylogo-image-input").addEventListener("change", function () { - var preview = document.querySelector("#companylogo-img"); - var file = document.querySelector("#companylogo-image-input").files[0]; - var reader = new FileReader(); - reader.addEventListener("load",function () { - preview.src = reader.result; - },false); - if (file) { - reader.readAsDataURL(file); - } -}); - -var idField = document.getElementById("applicationId"), -companyLogoImg = document.getElementById("companylogo-img"), -companyField = document.getElementById("company-field"), -designationField = document.getElementById("designation-field"), -dateField = document.getElementById("date-field"), -contactField = document.getElementById("contact-field"), -statusField = document.getElementById("status-input"), -typeField = document.getElementById("type-input"), -addBtn = document.getElementById("add-btn"), -editBtn = document.getElementById("edit-btn"), -removeBtns = document.getElementsByClassName("remove-item-btn"), -editBtns = document.getElementsByClassName("edit-item-btn"); -refreshCallbacks(); - -var tabEl = document.querySelectorAll('a[data-bs-toggle="tab"]'); -Array.from(tabEl).forEach(function (item) { - item.addEventListener("shown.bs.tab", function (event) { - filterOrder(event.target.id); - }); -}); - -function filterOrder(isValue) { - var values_status = isValue; - applicationList.filter(function (data) { - var statusFilter = false; - matchData = new DOMParser().parseFromString( - data.values().status, - "text/html" - ); - var status = matchData.body.firstElementChild.innerHTML; - if (status == "All" || values_status == "All") { - statusFilter = true; - } else { - statusFilter = status == values_status; - } - return statusFilter; - }); - - applicationList.update(); -} - -var example = new Choices(typeField, { - searchEnabled: false, -}); -var statusVal = new Choices(statusField, { - searchEnabled: false, -}); - -document.getElementById("showModal").addEventListener("show.bs.modal", function (e) { - if (e.relatedTarget.classList.contains("edit-item-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Edit Application"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Update"; - } else if (e.relatedTarget.classList.contains("add-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Add Application"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Add Application"; - } else { - document.getElementById("exampleModalLabel").innerHTML = "List Application"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "none"; - } -}); -ischeckboxcheck(); -document.getElementById("showModal").addEventListener("hidden.bs.modal", function () { - clearFields(); -}); - - -document.querySelector("#applicationList").addEventListener("click", function () { - refreshCallbacks(); - ischeckboxcheck(); -}); - -var table = document.getElementById("jobListTable"); -// save all tr -var tr = table.getElementsByTagName("tr"); -var trlist = table.querySelectorAll(".list tr"); - -function filterData() { - var isstatus = document.getElementById("idStatus").value; - var isType = document.getElementById("idType").value; - var pickerVal = document.getElementById("demo-datepicker").value; - - var date1 = pickerVal.split(" to ")[0]; - var date2 = pickerVal.split(" to ")[1]; - - applicationList.filter(function (data) { - matchData = new DOMParser().parseFromString( - data.values().status, - "text/html" - ); - var status = matchData.body.firstElementChild.innerHTML; - var statusFilter = false; - var typeFilter = false; - var dateFilter = false; - if (status == "all" || isstatus == "all") { - statusFilter = true; - } else { - statusFilter = status == isstatus; - } - - if (data.values().type == "all" || isType == "all") { - typeFilter = true; - } else { - typeFilter = data.values().type == isType; - } - - if ( - new Date(data.values().date.slice(0, 12)) >= new Date(date1) && - new Date(data.values().date.slice(0, 12)) <= new Date(date2) - ) { - dateFilter = true; - } else { - dateFilter = false; - } - - if (statusFilter && typeFilter && dateFilter) { - return statusFilter && typeFilter && dateFilter; - } else if (statusFilter && typeFilter && pickerVal == "") { - return statusFilter && typeFilter; - } else if (typeFilter && dateFilter && pickerVal == "") { - return typeFilter && dateFilter; - } - }); - applicationList.update(); -} - -var count = 13; -var forms = document.querySelectorAll('.tablelist-form') -Array.prototype.slice.call(forms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - if (companyField.value !== "" && - designationField.value !== "" && - dateField.value !== "" && - contactField.value !== "" && - statusField.value !== "" && - typeField.value !== "" && !editlist){ - applicationList.add({ - id: '#VZ'+count+'', - company: '
    \ -
    \ - \ -
    \ -
    '+companyField.value+'
    \ -
    ', - designation: designationField.value, - date: dateField.value, - contacts: contactField.value, - type: typeField.value, - status: isStatus(statusField.value) - }); - applicationList.sort('id', { order: "desc" }); - document.getElementById("close-modal").click(); - clearFields(); - refreshCallbacks(); - filterOrder("All"); - count++; - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Application inserted successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - }else if(companyField.value !== "" && - designationField.value !== "" && - dateField.value !== "" && - contactField.value !== "" && - statusField.value !== "" && - typeField.value !== "" && editlist){ - var editValues = applicationList.get({ - id: idField.value, - }); - Array.from(editValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - x.values({ - id: ''+idField.value+"", - company: '
    \ -
    \ - \ -
    \ -
    '+companyField.value+'
    \ -
    ', - designation: designationField.value, - date: dateField.value, - contacts: contactField.value, - type: typeField.value, - status: isStatus(statusField.value) - }); - } - document.getElementById("close-modal").click(); - }); - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Application updated Successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } - } - }, false) -}) - - -function ischeckboxcheck() { - Array.from(document.getElementsByName("checkAll")).forEach(function (x) { - x.addEventListener("change", function (e) { - if (x.checked == true) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - - var checkedCount = document.querySelectorAll('[name="checkAll"]:checked').length; - if (e.target.closest("tr").classList.contains("table-active")) { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; - } - }); - }); -} - -function refreshCallbacks() { - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = applicationList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - applicationList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecord-close").click(); - }); - } - }); - }); - }); - - Array.from(editBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = applicationList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - editlist = true; - idField.value = selectedid; - var companyElem = new DOMParser().parseFromString(x._values.company, "text/html").body.querySelector(".name").innerHTML; - companyField.value = companyElem; - companyLogoImg.src = new DOMParser().parseFromString(x._values.company, "text/html").body.querySelector(".image_src").src - designationField.value = x._values.designation; - dateField.value = x._values.date; - contactField.value = x._values.contacts; - - if (statusVal) statusVal.destroy(); - statusVal = new Choices(statusField, { - searchEnabled: false - }); - val = new DOMParser().parseFromString(x._values.status, "text/html"); - var statusSelec = val.body.firstElementChild.innerHTML; - statusVal.setChoiceByValue(statusSelec); - - if (example) example.destroy(); - example = new Choices(typeField, { - searchEnabled: false - }); - var selected = x._values.type; - example.setChoiceByValue(selected); - - flatpickr("#date-field", { - enableTime: false, - dateFormat: "d M, Y", - defaultDate: x._values.date, - }); - } - }); - }); - }); -} - -function clearFields() { - companyField.value = ""; - companyLogoImg.src = ""; - designationField.value = ""; - dateField.value = ""; - contactField.value = ""; - - if (example) example.destroy(); - example = new Choices(typeField); - - if (statusVal) statusVal.destroy(); - statusVal = new Choices(statusField); -} - -document.querySelector(".pagination-next").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click() : "" : ""; -}); -document.querySelector(".pagination-prev").addEventListener("click", function () { - document.querySelector(".pagination.listjs-pagination") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active") ? - document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click() : "" : ""; -}); - - -// Delete Multiple Records -function deleteMultiple(){ - ids_array = []; - var items = document.querySelectorAll('.form-check [value=option1]'); - for (i = 0; i < items.length; i++) { - if (items[i].checked == true) { - var trNode = items[i].parentNode.parentNode.parentNode; - var id = trNode.querySelector("td a").innerHTML; - ids_array.push(id); - } - } - if (typeof ids_array !== 'undefined' && ids_array.length > 0) { - Swal.fire({ - title: "Are you sure?", - text: "You won't be able to revert this!", - icon: "warning", - showCancelButton: true, - confirmButtonClass: 'btn btn-primary w-xs me-2 mt-2', - cancelButtonClass: 'btn btn-danger w-xs mt-2', - confirmButtonText: "Yes, delete it!", - buttonsStyling: false, - showCloseButton: true - }).then(function (result) { - if (result.value) { - for (i = 0; i < ids_array.length; i++) { - applicationList.remove("id", `` + ids_array[i] +``); - } - document.getElementById("remove-actions").style.display = 'none'; - document.getElementById("checkAll").checked = false; - Swal.fire({ - title: 'Deleted!', - text: 'Your data has been deleted.', - icon: 'success', - confirmButtonClass: 'btn btn-info w-xs mt-2', - buttonsStyling: false - }); - } - }); - } else { - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -} diff --git a/src/main/resources/static/assets/js/pages/job-candidate-grid.init.js b/src/main/resources/static/assets/js/pages/job-candidate-grid.init.js deleted file mode 100644 index 3eebb4d..0000000 --- a/src/main/resources/static/assets/js/pages/job-candidate-grid.init.js +++ /dev/null @@ -1,184 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: job candidate grid init js -*/ - -var url = "assets/json/"; -var allcandidateList = ''; - -var prevButton = document.getElementById('page-prev'); -var nextButton = document.getElementById('page-next'); - -// configuration variables -var currentPage = 1; -var itemsPerPage = 20; - -var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); -}; - -// get json -getJSON("job-candidate-list.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - allcandidateList = data; - loadCandidateListData(allcandidateList, currentPage); - paginationEvents(); - } -}); - -function loadCandidateListData(datas, page) { - var pages = Math.ceil(datas.length / itemsPerPage) - if (page < 1) page = 1 - if (page > pages) page = pages - document.querySelector("#candidate-list").innerHTML = ''; - - for (var i = (page - 1) * itemsPerPage; i < (page * itemsPerPage) && i < datas.length; i++) { - // Array.from(datas).forEach(function (listData, index){ - if (datas[i]) { - var isUserProfile = datas[i].userImg ? '' - : '
    ' + datas[i].nickname + '
    '; - document.querySelector("#candidate-list").innerHTML += '
    \ -
    \ -
    \ -
    \ -
    \ -
    '+ isUserProfile + '
    \ -
    \ -
    \ - \ -
    '+ datas[i].candidateName + '
    \ -
    \ -

    '+ datas[i].designation + '

    \ -
    \ -
    '+ datas[i].rating[0] + '
    \ -
    '+ datas[i].rating[1] + '
    \ -
    \ -
    \ -
    \ - '+ datas[i].location + '
    \ -
    \ - '+ isStatus(datas[i].type) + '\ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    '; - } - } - selectedPage(); - currentPage == 1 ? prevButton.parentNode.classList.add('disabled') : prevButton.parentNode.classList.remove('disabled'); - currentPage == pages ? nextButton.parentNode.classList.add('disabled') : nextButton.parentNode.classList.remove('disabled'); -} - -function isStatus(val) { - switch (val) { - case "Part Time": - return ('' + val + ""); - case "Full Time": - return ('' + val + ""); - case "Freelancer": - return ('' + val + ""); - } -} - -function selectedPage() { - var pagenumLink = document.getElementById('page-num').getElementsByClassName('clickPageNumber'); - for (var i = 0; i < pagenumLink.length; i++) { - if (i == currentPage - 1) { - pagenumLink[i].parentNode.classList.add("active"); - } else { - pagenumLink[i].parentNode.classList.remove("active"); - } - } -}; - -// paginationEvents -function paginationEvents() { - var numPages = function numPages() { - return Math.ceil(allcandidateList.length / itemsPerPage); - }; - - function clickPage() { - document.addEventListener('click', function (e) { - if (e.target.nodeName == "A" && e.target.classList.contains("clickPageNumber")) { - currentPage = e.target.textContent; - loadCandidateListData(allcandidateList, currentPage); - } - }); - }; - - function pageNumbers() { - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - // for each page - for (var i = 1; i < numPages() + 1; i++) { - pageNumber.innerHTML += ""; - } - } - - prevButton.addEventListener('click', function () { - if (currentPage > 1) { - currentPage--; - loadCandidateListData(allcandidateList, currentPage); - } - }); - - nextButton.addEventListener('click', function () { - if (currentPage < numPages()) { - currentPage++; - loadCandidateListData(allcandidateList, currentPage); - } - }); - - pageNumbers(); - clickPage(); - selectedPage(); -} - - -// Search list -var searchElementList = document.getElementById("searchJob"); -searchElementList.addEventListener("keyup", function () { - var inputVal = searchElementList.value.toLowerCase(); - - function filterItems(arr, query) { - return arr.filter(function (el) { - return el.designation.toLowerCase().indexOf(query.toLowerCase()) !== -1 || el.candidateName.toLowerCase().indexOf(query.toLowerCase()) !== -1 - }) - } - - var filterData = filterItems(allcandidateList, inputVal); - - if (filterData.length == 0) { - document.getElementById("pagination-element").style.display = "none"; - } else { - document.getElementById("pagination-element").style.display = "flex"; - } - - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - var dataPageNum = Math.ceil(filterData.length / itemsPerPage) - // for each page - for (var i = 1; i < dataPageNum + 1; i++) { - pageNumber.innerHTML += ""; - } - loadCandidateListData(filterData, currentPage); -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/job-candidate-lists.init.js b/src/main/resources/static/assets/js/pages/job-candidate-lists.init.js deleted file mode 100644 index ebfdbc0..0000000 --- a/src/main/resources/static/assets/js/pages/job-candidate-lists.init.js +++ /dev/null @@ -1,192 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: job candidate list init js -*/ - -var url = "assets/json/"; -var allcandidateList = ''; - -var prevButton = document.getElementById('page-prev'); -var nextButton = document.getElementById('page-next'); - -// configuration variables -var currentPage = 1; -var itemsPerPage = 8; - -var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); -}; - -// get json -getJSON("job-candidate-list.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - allcandidateList = data; - loadCandidateListData(allcandidateList, currentPage); - paginationEvents(); - } -}); - -function loadCandidateListData(datas, page) { - var pages = Math.ceil(datas.length / itemsPerPage) - if (page < 1) page = 1 - if (page > pages) page = pages - document.querySelector("#candidate-list").innerHTML = ''; - - for (var i = (page - 1) * itemsPerPage; i < (page * itemsPerPage) && i < datas.length; i++) { - // Array.from(datas).forEach(function (listData, index){ - - if (datas[i]) { - var bookmark = datas[i].bookmark ? "active" : ""; - - var isUserProfile = datas[i].userImg ? '' - : '
    ' + datas[i].nickname + '
    '; - document.querySelector("#candidate-list").innerHTML += '
    \ -
    \ -
    \ -
    \ -
    \ -
    '+ isUserProfile + '
    \ -
    \ -
    \ -
    '+ datas[i].candidateName + '
    \ -

    '+ datas[i].designation + '

    \ -
    \ -
    \ -
    '+ datas[i].location + '
    \ -
    '+ isStatus(datas[i].type) + '
    \ -
    \ -
    \ -
    \ - '+ datas[i].rating[0] + '\ -
    \ -
    '+ datas[i].rating[1] + '
    \ -
    \ - \ -
    \ -
    \ -
    \ -
    ' - } - // }) - } - - selectedPage(); - currentPage == 1 ? prevButton.parentNode.classList.add('disabled') : prevButton.parentNode.classList.remove('disabled'); - currentPage == pages ? nextButton.parentNode.classList.add('disabled') : nextButton.parentNode.classList.remove('disabled'); -} - -function isStatus(val) { - switch (val) { - case "Part Time": - return ('' + val + ""); - case "Full Time": - return ('' + val + ""); - case "Freelancer": - return ('' + val + ""); - } -} - -function selectedPage() { - var pagenumLink = document.getElementById('page-num').getElementsByClassName('clickPageNumber'); - for (var i = 0; i < pagenumLink.length; i++) { - if (i == currentPage - 1) { - pagenumLink[i].parentNode.classList.add("active"); - } else { - pagenumLink[i].parentNode.classList.remove("active"); - } - } -}; - -// paginationEvents -function paginationEvents() { - var numPages = function numPages() { - return Math.ceil(allcandidateList.length / itemsPerPage); - }; - - function clickPage() { - document.addEventListener('click', function (e) { - if (e.target.nodeName == "A" && e.target.classList.contains("clickPageNumber")) { - currentPage = e.target.textContent; - loadCandidateListData(allcandidateList, currentPage); - } - }); - }; - - function pageNumbers() { - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - // for each page - for (var i = 1; i < numPages() + 1; i++) { - pageNumber.innerHTML += ""; - } - } - - prevButton.addEventListener('click', function () { - if (currentPage > 1) { - currentPage--; - loadCandidateListData(allcandidateList, currentPage); - } - }); - - nextButton.addEventListener('click', function () { - if (currentPage < numPages()) { - currentPage++; - loadCandidateListData(allcandidateList, currentPage); - } - }); - - pageNumbers(); - clickPage(); - selectedPage(); -} - -// Search list -var searchElementList = document.getElementById("searchJob"); -searchElementList.addEventListener("keyup", function () { - var inputVal = searchElementList.value.toLowerCase(); - - function filterItems(arr, query) { - return arr.filter(function (el) { - return el.designation.toLowerCase().indexOf(query.toLowerCase()) !== -1 || el.candidateName.toLowerCase().indexOf(query.toLowerCase()) !== -1 - }) - } - - var filterData = filterItems(allcandidateList, inputVal); - - if (filterData.length == 0) { - document.getElementById("pagination-element").style.display = "none"; - } else { - document.getElementById("pagination-element").style.display = "flex"; - } - - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - var dataPageNum = Math.ceil(filterData.length / itemsPerPage) - // for each page - for (var i = 1; i < dataPageNum + 1; i++) { - pageNumber.innerHTML += ""; - } - loadCandidateListData(filterData, currentPage); -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/job-companies-lists.init.js b/src/main/resources/static/assets/js/pages/job-companies-lists.init.js deleted file mode 100644 index 75132ad..0000000 --- a/src/main/resources/static/assets/js/pages/job-companies-lists.init.js +++ /dev/null @@ -1,265 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: job companies list init js -*/ - - -var url = "assets/json/"; -var allCompaniesList = ''; - -var prevButton = document.getElementById('page-prev'); -var nextButton = document.getElementById('page-next'); - -// configuration variables -var currentPage = 1; -var itemsPerPage = 16; - -// getJSON -var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); -}; - -// get json -getJSON("job-companies-list.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - allCompaniesList = data; - loadCompaniesListData(allCompaniesList, currentPage); - paginationEvents(); - } -}); - -function loadCompaniesListData(datas, page) { - var pages = Math.ceil(datas.length / itemsPerPage) - if (page < 1) page = 1 - if (page > pages) page = pages - document.querySelector("#companies-list").innerHTML = ''; - for (var i = (page - 1) * itemsPerPage; i < (page * itemsPerPage) && i < datas.length; i++) { - // Array.from(datas).forEach(function (listData, index) { - if (datas[i]) { - document.querySelector("#companies-list").innerHTML += '
    \ -
    \ -
    \ -
    \ -
    \ - \ -
    \ -
    \ -
    \ - \ -
    '+ datas[i].companyName + '
    \ -
    \ -
    '+ datas[i].companyDesc + '
    \ -

    '+ datas[i].industryType + '

    \ -
    \ - '+ datas[i].employee + '\ - '+ datas[i].location + '\ - '+ datas[i].rating + '\ - '+ datas[i].website + '\ - \ - '+ datas[i].since + '\ -
    \ -
    \ -
    \ - \ -
    \ -
    \ -
    \ -
    '; - } - } - // }) - selectedPage(); - currentPage == 1 ? prevButton.parentNode.classList.add('disabled') : prevButton.parentNode.classList.remove('disabled'); - currentPage == pages ? nextButton.parentNode.classList.add('disabled') : nextButton.parentNode.classList.remove('disabled'); - jobDetailShow(); -} - -function selectedPage() { - var pagenumLink = document.getElementById('page-num').getElementsByClassName('clickPageNumber'); - for (var i = 0; i < pagenumLink.length; i++) { - if (i == currentPage - 1) { - pagenumLink[i].parentNode.classList.add("active"); - } else { - pagenumLink[i].parentNode.classList.remove("active"); - } - } -}; - -// paginationEvents -function paginationEvents() { - var numPages = function numPages() { - return Math.ceil(allCompaniesList.length / itemsPerPage); - }; - - function clickPage() { - document.addEventListener('click', function (e) { - if (e.target.nodeName == "A" && e.target.classList.contains("clickPageNumber")) { - currentPage = e.target.textContent; - loadCompaniesListData(allCompaniesList, currentPage); - } - }); - }; - - function pageNumbers() { - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - // for each page - for (var i = 1; i < numPages() + 1; i++) { - pageNumber.innerHTML += ""; - } - } - - prevButton.addEventListener('click', function () { - if (currentPage > 1) { - currentPage--; - loadCompaniesListData(allCompaniesList, currentPage); - } - }); - - nextButton.addEventListener('click', function () { - if (currentPage < numPages()) { - currentPage++; - loadCompaniesListData(allCompaniesList, currentPage); - } - }); - - pageNumbers(); - clickPage(); - selectedPage(); -} - -// jobDetailShow event -function jobDetailShow() { - Array.from(document.querySelectorAll("#companies-list .companiesList-card")).forEach(function (item) { - item.querySelector(".viewcompany-list").addEventListener("click", function () { - var companyLogoImgVal = item.querySelector(".companyLogo-img").src; - var companyNameVal = item.querySelector(".company-name").innerHTML; - var companyDescVal = item.querySelector(".company-desc").innerHTML; - var industryTypeVal = item.querySelector(".industry-type").innerHTML; - var companyEmployeeVal = item.querySelector(".employee").innerHTML; - var companyLocationVal = item.querySelector(".location").innerHTML; - var companyRatingVal = item.querySelector(".rating").innerHTML; - var companyWebsiteVal = item.querySelector(".website").innerHTML; - var companyEmailVal = item.querySelector(".email").innerHTML; - var companySinceVal = item.querySelector(".since").innerHTML; - var jobVacancyVal = item.querySelector(".vacancy").innerHTML; - - document.querySelector("#company-overview .company-logo").src = companyLogoImgVal; - document.querySelector("#company-overview .overview-companyname").innerHTML = companyNameVal; - document.querySelectorAll("#company-overview .overview-industryType").forEach(function (elem) { - elem.innerHTML = industryTypeVal; - }); - document.querySelector("#company-overview .overview-companydesc").innerHTML = companyDescVal; - document.querySelector("#company-overview .overview-company_location").innerHTML = companyLocationVal; - document.querySelector("#company-overview .overview-employee").innerHTML = companyEmployeeVal; - document.querySelector("#company-overview .overview-vacancy").innerHTML = jobVacancyVal; - document.querySelector("#company-overview .overview-rating").innerHTML = companyRatingVal; - document.querySelector("#company-overview .overview-website").innerHTML = companyWebsiteVal; - document.querySelector("#company-overview .overview-email").innerHTML = companyEmailVal; - document.querySelector("#company-overview .overview-since").innerHTML = companySinceVal; - }); - }); -} - - -// Search list -var searchElementList = document.getElementById("searchCompany"); -searchElementList.addEventListener("keyup", function () { - var inputVal = searchElementList.value.toLowerCase(); - - function filterItems(arr, query) { - return arr.filter(function (el) { - return el.companyName.toLowerCase().indexOf(query.toLowerCase()) !== -1 || el.industryType.toLowerCase().indexOf(query.toLowerCase()) !== -1 - }) - } - - var filterData = filterItems(allCompaniesList, inputVal); - - if (filterData.length == 0) { - document.getElementById("pagination-element").style.display = "none"; - } else { - document.getElementById("pagination-element").style.display = "flex"; - } - - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - var dataPageNum = Math.ceil(filterData.length / itemsPerPage) - // for each page - for (var i = 1; i < dataPageNum + 1; i++) { - pageNumber.innerHTML += ""; - } - loadCompaniesListData(filterData, currentPage); -}); - - -flatpickr("#datepicker", { - dateFormat: "d M, Y", - defaultDate: new Date(), - maxDate: new Date() -}); - - -// filterdata -function filterData() { - var pickerVal = document.getElementById("datepicker").value; - var isType = document.getElementById("idType").value; - - var filterData = allCompaniesList.filter(function (data) { - console.log(new Date(data.postDate) <= new Date(pickerVal)) - - var dateFilter = false; - var typeFilter = false; - - if (data.type == "all" || isType == "all") { - typeFilter = true; - } else { - typeFilter = data.type == isType; - } - - if (new Date(data.postDate) <= new Date(pickerVal)) { - dateFilter = true; - } else { - dateFilter = false; - } - - if (typeFilter && dateFilter) { - return typeFilter && dateFilter; - }else if (typeFilter && pickerVal == "") { - return typeFilter; - } else if (typeFilter && dateFilter && pickerVal == "") { - return typeFilter && dateFilter; - } - }); - - if(filterData.length == 0){ - document.getElementById("pagination-element").style.display = "none"; - }else{ - document.getElementById("pagination-element").style.display = "flex"; - } - - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - var dataPageNum = Math.ceil(filterData.length / itemsPerPage) - // for each page - for (var i = 1; i < dataPageNum + 1; i++) { - pageNumber.innerHTML += ""; - } - - loadCompaniesListData(filterData, currentPage); -}; \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/job-grid-list.init.js b/src/main/resources/static/assets/js/pages/job-grid-list.init.js deleted file mode 100644 index cfbb76c..0000000 --- a/src/main/resources/static/assets/js/pages/job-grid-list.init.js +++ /dev/null @@ -1,281 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: job grid list Js File -*/ - -var url = "assets/json/"; -var allJobList = ''; - -var prevButton = document.getElementById('page-prev'); -var nextButton = document.getElementById('page-next'); - -// configuration variables -var currentPage = 1; -var itemsPerPage = 8; - -var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); -}; - -// get json -getJSON("job-grid-list.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - allJobList = data; - loadJobListData(allJobList, currentPage); - paginationEvents(); - } -}); - -// load job list data -function loadJobListData(datas, page) { - var pages = Math.ceil(datas.length / itemsPerPage) - if (page < 1) page = 1 - if (page > pages) page = pages - document.querySelector("#job-list").innerHTML = ''; - - if (currentPage == 1) { - itemsPerPage = 7; - document.querySelector("#job-list").insertAdjacentHTML('afterbegin', '
    \ -
    \ -
    \ -

    Velzon invites young professionals for an intership!

    \ -

    Don\'t miss your opportunity to improve your skills!

    \ -
    \ - \ -
    \ -
    \ -
    \ -
    '); - } else { - itemsPerPage = 8; - } - for (var i = (page - 1) * itemsPerPage; i < (page * itemsPerPage) && i < datas.length; i++) { - // Array.from(datas).forEach(function (listData, index) { - var tagHtmlValue = ''; - datas[i] && Array.from(datas[i].requirement).forEach(function (tag, index) { - var tagClass = ''; - if (tag) { - if (tag == "Full Time") { - tagClass = 'badge-soft-success' - } else if (tag == "Freelance") { - tagClass = 'badge-soft-primary' - } else if (tag == "Urgent") { - tagClass = 'badge-soft-danger' - } else if (tag == "Part Time") { - tagClass = 'badge-soft-warning' - } else if (tag == "Private") { - tagClass = 'badge-soft-info' - } else { - tagClass = 'badge-soft-success' - } - } - - tagHtmlValue += '' + tag + '' - }) - - if (datas[i]) { - document.querySelector("#job-list").innerHTML += '
    \ -
    \ -
    \ - \ -
    \ -
    \ - \ -
    \ -
    \ -
    '+ datas[i].jobTitle + '
    \ -

    '+ datas[i].companyName + '

    \ -
    \ -
    '+ datas[i].location + '
    \ -
    '+ datas[i].postDate + '
    \ -
    \ -

    '+ datas[i].description + '

    \ -
    '+ tagHtmlValue + '
    \ -
    \ - Apply Job\ - Overview\ -
    \ -
    \ -
    \ -
    ' - }; - } - - document.getElementById("total-result").innerHTML = datas.length - selectedPage(); - var searchElementList = document.getElementById("searchJob"); - searchElementList.addEventListener("keyup", function () { - var inputVal = searchElementList.value.toLowerCase(); - if(inputVal.length > 0){ - document.getElementById("job-widget").style.display = "none"; - }else{ - document.getElementById("job-widget").style.display = "block"; - } - }); - - if(datas.length > 0){ - document.getElementById("job-widget").style.display = "block"; - }else{ - document.getElementById("job-widget").style.display = "none"; - } - - currentPage == 1 ? prevButton.parentNode.classList.add('disabled') : prevButton.parentNode.classList.remove('disabled'); - currentPage == pages ? nextButton.parentNode.classList.add('disabled') : nextButton.parentNode.classList.remove('disabled'); -} - -function selectedPage() { - var pagenumLink = document.getElementById('page-num').getElementsByClassName('clickPageNumber'); - for (var i = 0; i < pagenumLink.length; i++) { - if (i == currentPage - 1) { - pagenumLink[i].parentNode.classList.add("active"); - } else { - pagenumLink[i].parentNode.classList.remove("active"); - } - } -}; - -// paginationEvents -function paginationEvents() { - var numPages = function numPages() { - return Math.ceil(allJobList.length / itemsPerPage); - }; - - function clickPage() { - document.addEventListener('click', function (e) { - if (e.target.nodeName == "A" && e.target.classList.contains("clickPageNumber")) { - currentPage = e.target.textContent; - loadJobListData(allJobList, currentPage); - } - }); - }; - - function pageNumbers() { - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - // for each page - for (var i = 1; i < numPages() + 1; i++) { - pageNumber.innerHTML += ""; - } - } - - prevButton.addEventListener('click', function () { - if (currentPage > 1) { - currentPage--; - loadJobListData(allJobList, currentPage); - } - }); - - nextButton.addEventListener('click', function () { - if (currentPage < numPages()) { - currentPage++; - loadJobListData(allJobList, currentPage); - } - }); - - pageNumbers(); - clickPage(); - selectedPage(); -} - - -// Search list -var searchElementList = document.getElementById("searchJob"); -searchElementList.addEventListener("keyup", function () { - var inputVal = searchElementList.value.toLowerCase(); - - function filterItems(arr, query) { - return arr.filter(function (el) { - return el.jobTitle.toLowerCase().indexOf(query.toLowerCase()) !== -1 - }) - } - - var filterData = filterItems(allJobList, inputVal); - - if(filterData.length == 0){ - document.getElementById("pagination-element").style.display = "none"; - }else{ - document.getElementById("pagination-element").style.display = "flex"; - } - - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - var dataPageNum = Math.ceil(filterData.length / itemsPerPage) - // for each page - for (var i = 1; i < dataPageNum + 1; i++) { - pageNumber.innerHTML += ""; - } - loadJobListData(filterData, currentPage); -}); - -function filterData() { - var isstatus = document.getElementById("idStatus").value; - var pickerVal = document.getElementById("datepicker").value; - var isType = document.getElementById("idType").value; - - var date1 = pickerVal.split(" to ")[0]; - var date2 = pickerVal.split(" to ")[1]; - - var filterData = allJobList.filter(function (data) { - var status = data.status; - var statusFilter = false; - var dateFilter = false; - var typeFilter = false; - - if (status == "all" || isstatus == "all") { - statusFilter = true; - } else { - statusFilter = status == isstatus; - } - - data.requirement.map(function (item) { - if (item == "all" || isType == "all") { - typeFilter = true; - } else { - typeFilter = data.requirement.includes(isType) - } - }) - - if ( - new Date(data.postDate) >= new Date(date1) && - new Date(data.postDate) <= new Date(date2) - ) { - dateFilter = true; - } else { - dateFilter = false; - } - - if (statusFilter && typeFilter && dateFilter) { - return statusFilter && typeFilter && dateFilter; - } else if (statusFilter && typeFilter && pickerVal == "") { - return statusFilter && typeFilter; - } else if (typeFilter && dateFilter && pickerVal == "") { - return typeFilter && dateFilter; - } - }); - - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - var dataPageNum = Math.ceil(filterData.length / itemsPerPage) - // for each page - for (var i = 1; i < dataPageNum + 1; i++) { - pageNumber.innerHTML += ""; - } - - loadJobListData(filterData, currentPage); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/job-lading.init.js b/src/main/resources/static/assets/js/pages/job-lading.init.js deleted file mode 100644 index a0867be..0000000 --- a/src/main/resources/static/assets/js/pages/job-lading.init.js +++ /dev/null @@ -1,79 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: job-landing init js -*/ - -// Window scroll sticky class add -function windowScroll() { - var navbar = document.getElementById("navbar"); - if (navbar) { - if (document.body.scrollTop >= 50 || document.documentElement.scrollTop >= 50) { - navbar.classList.add("is-sticky"); - } else { - navbar.classList.remove("is-sticky"); - } - } -} - -window.addEventListener('scroll', function (ev) { - ev.preventDefault(); - windowScroll(); -}); - -//team slider -var swiper = new Swiper(".candidate-swiper", { - slidesPerView: 1, - spaceBetween: 30, - loop: true, - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, - pagination: { - el: ".swiper-pagination", - clickable: true, - }, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - breakpoints: { - 1445: { - slidesPerView: 4, - spaceBetween: 24, - }, - 768: { - slidesPerView: 2, - spaceBetween: 24, - } - }, -}); - - -// -/********************* scroll top js ************************/ -// - -var mybutton = document.getElementById("back-to-top"); - -// When the user scrolls down 20px from the top of the document, show the button -window.onscroll = function () { - scrollFunction(); -}; - -function scrollFunction() { - if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) { - mybutton.style.display = "block"; - } else { - mybutton.style.display = "none"; - } -} - -// When the user clicks on the button, scroll to the top of the document -function topFunction() { - document.body.scrollTop = 0; - document.documentElement.scrollTop = 0; -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/job-list.init.js b/src/main/resources/static/assets/js/pages/job-list.init.js deleted file mode 100644 index a2a9e44..0000000 --- a/src/main/resources/static/assets/js/pages/job-list.init.js +++ /dev/null @@ -1,412 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: job-list init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// Simple Donut Charts -var chartDonutBasicColors = getChartColorsArray("simple_dount_chart"); -if (chartDonutBasicColors) { - var options = { - series: [98, 63, 35], - labels: ["New Application", "Approved", "Rejected"], - chart: { - height: 300, - type: 'donut', - }, - legend: { - position: 'bottom' - }, - dataLabels: { - dropShadow: { - enabled: false, - } - }, - colors: chartDonutBasicColors - }; - - var chart = new ApexCharts(document.querySelector("#simple_dount_chart"), options); - chart.render(); -} - -var url = "assets/json/"; -var allJobList = ''; -var editList = false; - -var prevButton = document.getElementById('page-prev'); -var nextButton = document.getElementById('page-next'); - -// configuration variables -var currentPage = 1; -var itemsPerPage = 3; - -var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); -}; - -// get json -getJSON("job-list.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - allJobList = data; - loadJobListData(allJobList, currentPage); - paginationEvents(); - sortElementsById(); - } -}); - -function loadJobListData(datas, page) { - var pages = Math.ceil(datas.length / itemsPerPage) - if (page < 1) page = 1 - if (page > pages) page = pages - document.querySelector("#job-list").innerHTML = ''; - - for (var i = (page - 1) * itemsPerPage; i < (page * itemsPerPage) && i < datas.length; i++) { - // Array.from(datas).forEach(function (listData, index){ - if(datas[i] && datas[i].tags){ - var tags = datas[i].tags; - var tagHtml = ''; - Array.from(tags).forEach((tag, index) => { - tagHtml += '' + tag + '' - }) - } - if (datas[i]) { - document.querySelector("#job-list").innerHTML += '
    \ -
    \ -
    \ -
    \ -
    \ - \ -
    \ -
    \ -
    \ - \ -
    '+ datas[i].jobTitle + '
    \ -

    '+ datas[i].companyName + '

    \ -
    \ -
    \ - \ -
    \ -
    \ -

    '+ datas[i].description + '

    \ -
    '+ tagHtml + '
    \ -
    \ - \ -
    '; - } - // }); - } - - document.getElementById("total-result").innerHTML = datas.length - selectedPage(); - currentPage == 1 ? prevButton.parentNode.classList.add('disabled') : prevButton.parentNode.classList.remove('disabled'); - currentPage == pages ? nextButton.parentNode.classList.add('disabled') : nextButton.parentNode.classList.remove('disabled'); - jobDetailShow(); -} - -function selectedPage() { - var pagenumLink = document.getElementById('page-num').getElementsByClassName('clickPageNumber'); - for (var i = 0; i < pagenumLink.length; i++) { - if (i == currentPage - 1) { - pagenumLink[i].parentNode.classList.add("active"); - } else { - pagenumLink[i].parentNode.classList.remove("active"); - } - } -}; - - -// paginationEvents -function paginationEvents() { - var numPages = function numPages() { - return Math.ceil(allJobList.length / itemsPerPage); - }; - - function clickPage() { - document.addEventListener('click', function (e) { - if (e.target.nodeName == "A" && e.target.classList.contains("clickPageNumber")) { - currentPage = e.target.textContent; - loadJobListData(allJobList, currentPage); - } - }); - }; - - function pageNumbers() { - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - // for each page - for (var i = 1; i < numPages() + 1; i++) { - pageNumber.innerHTML += ""; - } - } - - prevButton.addEventListener('click', function () { - if (currentPage > 1) { - currentPage--; - loadJobListData(allJobList, currentPage); - } - }); - - nextButton.addEventListener('click', function () { - if (currentPage < numPages()) { - currentPage++; - loadJobListData(allJobList, currentPage); - } - }); - - pageNumbers(); - clickPage(); - selectedPage(); -} - -// multiple Remove CancelButton -var tagInputField = new Choices('#taginput-choices', { - removeItemButton: true, - } -); - -// companylogo image -document.querySelector("#companylogo-image-input").addEventListener("change", function () { - var preview = document.querySelector("#companylogo-img"); - var file = document.querySelector("#companylogo-image-input").files[0]; - var reader = new FileReader(); - reader.addEventListener("load",function () { - preview.src = reader.result; - },false); - if (file) { - reader.readAsDataURL(file); - } -}); - -// cover image -document.querySelector("#cover-image-input").addEventListener("change", function () { - var preview = document.querySelector("#modal-cover-img"); - var file = document.querySelector("#cover-image-input").files[0]; - var reader = new FileReader(); - reader.addEventListener("load",function () { - preview.src = reader.result; - },false); - if (file) { - reader.readAsDataURL(file); - } -}); - -// Form Event -(function () { - 'use strict' - - // Fetch all the forms we want to apply custom Bootstrap validation styles to - var forms = document.querySelectorAll('.needs-validation') - var date = new Date().toUTCString().slice(5, 16); - - // Loop over them and prevent submission - Array.prototype.slice.call(forms) - .forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - - var jobTitleVal = document.getElementById("jobtitle-field").value; - var companyNameVal = document.getElementById("companyname-field").value; - var companyLogoImg = document.getElementById("companylogo-img").src; - var jobCoverImg = document.getElementById("modal-cover-img").src; - var jobTypeVal = document.getElementById("job_type-field").value; - var jobExperienceVal = document.getElementById("experience-field").value; - var locationVal = document.getElementById("location-field").value; - var descriptionVal = document.getElementById("description-field").value; - var tagInputFieldValue = tagInputField.getValue(true); - - if (jobTitleVal !== "" && companyNameVal !== "" && jobTypeVal !== "" && locationVal !== "" && locationVal !== "" && !editList) { - var newJobId = findNextId(); - var newJobList = { - 'id': newJobId, - "coverImg": jobCoverImg, - "companyLogo": companyLogoImg, - "jobTitle": jobTitleVal, - "companyName": companyNameVal, - "description": descriptionVal, - "tags": tagInputFieldValue, - "type": jobTypeVal, - "experience": jobExperienceVal, - "location": locationVal, - "applied": "0 Applied", - "postDate": date - }; - allJobList.push(newJobList); - sortElementsById(); - } - - loadJobListData(allJobList, currentPage); - document.getElementById("close-jobListModal").click(); - } - form.classList.add('was-validated'); - }, false); - }) -})() - -function fetchIdFromObj(member) { - return parseInt(member.id); -} - -function findNextId() { - if (allJobList.length === 0) { - return 0; - } - var lastElementId = fetchIdFromObj(allJobList[allJobList.length - 1]), - firstElementId = fetchIdFromObj(allJobList[0]); - return (firstElementId >= lastElementId) ? (firstElementId + 1) : (lastElementId + 1); -} - -function sortElementsById() { - var manyJobList = allJobList.sort(function (a, b) { - var x = fetchIdFromObj(a); - var y = fetchIdFromObj(b); - - if (x > y) { - return -1; - } - if (x < y) { - return 1; - } - return 0; - }) - - loadJobListData(manyJobList, currentPage); -} - -// jobDetailShow event -function jobDetailShow() { - Array.from(document.querySelectorAll("#job-list .joblist-card")).forEach(function (item) { - item.querySelector(".viewjob-list").addEventListener("click", function () { - var coverImgVal = item.querySelector(".cover-img").src; - var companyLogoImgVal = item.querySelector(".companyLogo-img").src; - var jobTitleVal = item.querySelector(".job-title").innerHTML; - var companyNameVal = item.querySelector(".company-name").innerHTML; - var jobDescVal = item.querySelector(".job-description").innerHTML; - var jobTypeVal = item.querySelector(".job-type").innerHTML; - var jobLocationVal = item.querySelector(".job-location").innerHTML; - var jobPostdateVal = item.querySelector(".job-postdate").innerHTML; - var jobExperienceVal = item.querySelector(".job-experience").innerHTML; - - document.querySelector("#cover-img").src = coverImgVal; - document.querySelector("#job-overview .view-companylogo").src = companyLogoImgVal; - document.querySelector("#job-overview .view-title").innerHTML = jobTitleVal; - document.querySelector("#job-overview .view-companyname").innerHTML = companyNameVal; - document.querySelector("#job-overview .view-location").innerHTML = jobLocationVal; - document.querySelector("#job-overview .view-desc").innerHTML = jobDescVal; - document.querySelector("#job-overview .view-type").innerHTML = jobTypeVal; - document.querySelector("#job-overview .view-postdate").innerHTML = jobPostdateVal; - document.querySelector("#job-overview .view-experience").innerHTML = jobExperienceVal; - }); - }); -} - -// Search list -var searchElementList = document.getElementById("searchJob"); -searchElementList.addEventListener("keyup", function () { - var inputVal = searchElementList.value.toLowerCase(); - - function filterItems(arr, query) { - return arr.filter(function (el) { - return el.jobTitle.toLowerCase().indexOf(query.toLowerCase()) !== -1 || el.companyName.toLowerCase().indexOf(query.toLowerCase()) !== -1 - }) - } - - var filterData = filterItems(allJobList, inputVal); - if(inputVal.length > 0){ - document.getElementById("found-job-alert").classList.remove("d-none"); - }else{ - document.getElementById("found-job-alert").classList.add("d-none"); - } - - if(filterData.length == 0){ - document.getElementById("pagination-element").style.display = "none"; - }else{ - document.getElementById("pagination-element").style.display = "flex"; - } - - var pageNumber = document.getElementById('page-num'); - pageNumber.innerHTML = ""; - var dataPageNum = Math.ceil(filterData.length / itemsPerPage) - // for each page - for (var i = 1; i < dataPageNum + 1; i++) { - pageNumber.innerHTML += ""; - } - loadJobListData(filterData, currentPage); -}); - -// clearFields -function clearFields() { - document.getElementById("companylogo-img").src = "assets/images/users/multi-user.jpg"; - document.getElementById("jobtitle-field").value = ""; - document.getElementById("companyname-field").value = ""; - document.getElementById("job_type-field").value = "Full Time"; - document.getElementById("experience-field").value = ""; - document.getElementById("location-field").value = ""; - document.getElementById("Salary-field").value = ""; - document.getElementById("description-field").value = ""; - - tagInputField.removeActiveItems(); - tagInputField.setChoiceByValue(""); - - document.getElementById("createjob-form").classList.remove("was-validated"); -} - -document.getElementById('CreateJobModal').addEventListener('hidden.bs.modal', event => { - clearFields(); -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/job-statistics.init.js b/src/main/resources/static/assets/js/pages/job-statistics.init.js deleted file mode 100644 index 71b0d8c..0000000 --- a/src/main/resources/static/assets/js/pages/job-statistics.init.js +++ /dev/null @@ -1,449 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: job-statistics init js -*/ - -// get colors array from the string -function getChartColorsArray(chartId) { - if (document.getElementById(chartId) !== null) { - var colors = document.getElementById(chartId).getAttribute("data-colors"); - colors = JSON.parse(colors); - return colors.map(function (value) { - var newValue = value.replace(" ", ""); - if (newValue.indexOf(",") === -1) { - var color = getComputedStyle(document.documentElement).getPropertyValue(newValue); - if (color) return color; - else return newValue;; - } else { - var val = value.split(','); - if (val.length == 2) { - var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]); - rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")"; - return rgbaColor; - } else { - return newValue; - } - } - }); - } -} - - -// results_sparkline_charts -var areachartbitcoinColors = getChartColorsArray("results_sparkline_charts"); -if (areachartbitcoinColors) { - var options = { - series: [{ - name: "Results", - data: [0, 36, 110, 95, 130], - },], - chart: { - width: 140, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartbitcoinColors, - }; - var chart = new ApexCharts(document.querySelector("#results_sparkline_charts"), options); - chart.render(); -} - - -// results_sparkline_charts -var areachartbitcoinColors = getChartColorsArray("results_sparkline_charts2"); -if (areachartbitcoinColors) { - var options = { - series: [{ - name: "Results", - data: [0, 98, 85, 90, 67], - },], - chart: { - width: 140, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartbitcoinColors, - }; - var chart = new ApexCharts(document.querySelector("#results_sparkline_charts2"), options); - chart.render(); -} - -// results_sparkline_charts -var areachartbitcoinColors = getChartColorsArray("results_sparkline_charts3"); -if (areachartbitcoinColors) { - var options = { - series: [{ - name: "Results", - data: [0, 110, 95, 75, 120], - },], - chart: { - width: 140, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartbitcoinColors, - }; - var chart = new ApexCharts(document.querySelector("#results_sparkline_charts3"), options); - chart.render(); -} - - -// results_sparkline_charts -var areachartbitcoinColors = getChartColorsArray("results_sparkline_charts4"); -if (areachartbitcoinColors) { - var options = { - series: [{ - name: "Results", - data: [0, 68, 35, 90, 99], - },], - chart: { - width: 140, - type: "area", - sparkline: { - enabled: true, - }, - toolbar: { - show: false, - }, - }, - dataLabels: { - enabled: false, - }, - stroke: { - curve: "smooth", - width: 1.5, - }, - fill: { - type: "gradient", - gradient: { - shadeIntensity: 1, - inverseColors: false, - opacityFrom: 0.45, - opacityTo: 0.05, - stops: [50, 100, 100, 100], - }, - }, - colors: areachartbitcoinColors, - }; - var chart = new ApexCharts(document.querySelector("#results_sparkline_charts4"), options); - chart.render(); -} - -// Distributed Treemap - -var chartTreemapDistributedColors = getChartColorsArray("distributed_treemap"); -if (chartTreemapDistributedColors) { - var options = { - series: [{ - data: [{ - x: 'USA', - y: 321 - }, - { - x: 'Russia', - y: 165 - }, - { - x: 'India', - y: 184 - }, - { - x: 'China', - y: 98 - }, - { - x: 'Canada', - y: 84 - }, - { - x: 'Brazil', - y: 31 - }, - { - x: 'UK', - y: 70 - }, - { - x: 'Australia', - y: 30 - }, - { - x: 'Germany', - y: 44 - }, - { - x: 'Italy', - y: 68 - }, - { - x: 'Israel', - y: 28 - }, - { - x: 'Indonesia', - y: 19 - }, - { - x: 'Bangladesh', - y: 29 - } - ] - }], - legend: { - show: false - }, - chart: { - height: 350, - type: 'treemap', - toolbar: { - show: false - } - }, - title: { - text: 'Visitors Location', - align: 'center', - style: { - fontWeight: 500, - } - }, - colors: chartTreemapDistributedColors, - plotOptions: { - treemap: { - distributed: true, - enableShades: false - } - } - }; - - var chart = new ApexCharts(document.querySelector("#distributed_treemap"), options); - chart.render(); -} - - -// User by devices -var dountchartUserDeviceColors = getChartColorsArray("user_device_pie_charts"); -if (dountchartUserDeviceColors) { - var options = { - series: [78.56, 105.02, 42.89], - labels: ["Desktop", "Mobile", "Tablet"], - chart: { - type: "donut", - height: 219, - }, - plotOptions: { - pie: { - size: 100, - donut: { - size: "76%", - }, - }, - }, - dataLabels: { - enabled: false, - }, - legend: { - show: false, - position: 'bottom', - horizontalAlign: 'center', - offsetX: 0, - offsetY: 0, - markers: { - width: 20, - height: 6, - radius: 2, - }, - itemMargin: { - horizontal: 12, - vertical: 0 - }, - }, - stroke: { - width: 0 - }, - yaxis: { - labels: { - formatter: function (value) { - return value + "k" + " Users"; - } - }, - tickAmount: 4, - min: 0 - }, - colors: dountchartUserDeviceColors, - }; - var chart = new ApexCharts(document.querySelector("#user_device_pie_charts"), options); - chart.render(); -} - - -// Deal Type Charts -var dealTypeChartsColors = getChartColorsArray("deal-type-charts"); -if (dealTypeChartsColors) { - var options = { - series: [{ - name: 'Following', - data: [80, 50, 30, 40, 100, 20], - }, - { - name: 'Followers', - data: [20, 30, 40, 80, 20, 80], - }], - chart: { - height: 341, - type: 'radar', - dropShadow: { - enabled: true, - blur: 1, - left: 1, - top: 1 - }, - toolbar: { - show: false - }, - }, - stroke: { - width: 2 - }, - fill: { - opacity: 0.2 - }, - legend: { - show: true, - fontWeight: 500, - offsetX: 0, - offsetY: -8, - markers: { - width: 8, - height: 8, - radius: 6, - }, - itemMargin: { - horizontal: 10, - vertical: 0 - } - }, - markers: { - size: 0 - }, - colors: dealTypeChartsColors, - xaxis: { - categories: ['2016', '2017', '2018', '2019', '2020', '2021'] - } - }; - var chart = new ApexCharts(document.querySelector("#deal-type-charts"), options); - chart.render(); -} - -// Balance Overview charts -var revenueExpensesChartsColors = getChartColorsArray("revenue-expenses-charts"); -if (revenueExpensesChartsColors) { - var options = { - series: [{ - name: 'Application Sent ', - data: [33, 28, 30, 35, 40, 55, 70, 110, 150, 180, 210, 250] - }, { - name: ' Interviews', - data: [20, 26, 45, 32, 42, 53, 59, 70, 78, 97, 110, 125] - }, - { - name: ' Hired', - data: [12, 17, 45, 42, 24, 35, 42, 75, 102, 108, 156, 199] - }, - { - name: ' Rejected', - data: [8, 13, 22, 27, 32, 34, 46, 59, 65, 97, 100, 110] - }], - chart: { - height: 320, - type: 'area', - toolbar: 'false', - }, - dataLabels: { - enabled: false - }, - stroke: { - curve: 'smooth', - width: 2, - }, - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] - }, - colors: revenueExpensesChartsColors, - fill: { - opacity: 0.06, - colors: revenueExpensesChartsColors, - type: 'solid' - } - }; - var chart = new ApexCharts(document.querySelector("#revenue-expenses-charts"), options); - chart.render(); -} diff --git a/src/main/resources/static/assets/js/pages/landing.init.js b/src/main/resources/static/assets/js/pages/landing.init.js deleted file mode 100644 index 9f7e1f4..0000000 --- a/src/main/resources/static/assets/js/pages/landing.init.js +++ /dev/null @@ -1,177 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: landing Js File -*/ - -// Window scroll sticky class add -function windowScroll() { - var navbar = document.getElementById("navbar"); - if (navbar) { - if (document.body.scrollTop >= 50 || document.documentElement.scrollTop >= 50) { - navbar.classList.add("is-sticky"); - } else { - navbar.classList.remove("is-sticky"); - } - } -} - -window.addEventListener('scroll', function (ev) { - ev.preventDefault(); - windowScroll(); -}); - -// Collapse Menu -const navLinks = document.querySelectorAll('.nav-item'); -const menuToggle = document.getElementById('navbarSupportedContent'); -var bsCollapse = ''; -if (navLinks && menuToggle) { - window.addEventListener('load', function () { - window.dispatchEvent(new Event('resize')); - }); - window.addEventListener('resize', function () { - var windowSize = document.documentElement.clientWidth; - bsCollapse = new bootstrap.Collapse(menuToggle, { - toggle: false - }); - if (windowSize < 980) { - Array.from(navLinks).forEach((link) => { - link.addEventListener('click', () => { - toggleMenu(); - }); - }); - } else { - toggleMenu(); - } - }); -} - -function toggleMenu() { - var windowSize = document.documentElement.clientWidth; - if (windowSize < 980) { - bsCollapse.toggle(); - } else { - bsCollapse = ''; - } -} - -// trusted-client-slider -var swiper = new Swiper(".trusted-client-slider", { - spaceBetween: 30, - loop: 'true', - slidesPerView: 1, - autoplay: { - delay: 1000, - disableOnInteraction: false, - }, - breakpoints: { - 576: { - slidesPerView: 2, - }, - 768: { - slidesPerView: 3, - }, - 1024: { - slidesPerView: 4, - }, - }, -}); - -// pricing -function check() { - var checkBox = document.getElementById("plan-switch"); - var month = document.getElementsByClassName("month"); - var annual = document.getElementsByClassName("annual"); - - var i = 0; - Array.from(month).forEach(function (mon) { - if (checkBox.checked == true) { - annual[i].style.display = "block"; - mon.style.display = "none"; - } else if (checkBox.checked == false) { - annual[i].style.display = "none"; - mon.style.display = "block"; - } - i ++; - }); -} -check(); - -// client-review-swiper -var swiper = new Swiper(".client-review-swiper", { - loop: false, - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - pagination: { - clickable: true, - el: ".swiper-pagination", - }, -}); - -// counter-value -function counter() { - var counter = document.querySelectorAll('.counter-value'); - if (counter) { - var speed = 250; // The lower the slower - counter && Array.from(counter).forEach(function (counter_value) { - function updateCount() { - var target = +counter_value.getAttribute('data-target'); - var count = +counter_value.innerText; - var inc = target / speed; - if (inc < 1) { - inc = 1; - } - // Check if target is reached - if (count < target) { - // Add inc to count and output in counter_value - counter_value.innerText = (count + inc).toFixed(0); - // Call function every ms - setTimeout(updateCount, 1); - } else { - counter_value.innerText = numberWithCommas(target); - } - numberWithCommas(counter_value.innerText); - }; - updateCount(); - }); - - function numberWithCommas(x) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); - } - } -}; -counter(); - - -// -/********************* scroll top js ************************/ -// - -var mybutton = document.getElementById("back-to-top"); - -// When the user scrolls down 20px from the top of the document, show the button -window.onscroll = function () { - scrollFunction(); -}; - -function scrollFunction() { - if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) { - mybutton.style.display = "block"; - } else { - mybutton.style.display = "none"; - } -} - -// When the user clicks on the button, scroll to the top of the document -function topFunction() { - document.body.scrollTop = 0; - document.documentElement.scrollTop = 0; -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/leaflet-map.init.js b/src/main/resources/static/assets/js/pages/leaflet-map.init.js deleted file mode 100644 index 2ababe0..0000000 --- a/src/main/resources/static/assets/js/pages/leaflet-map.init.js +++ /dev/null @@ -1,192 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Leaflet init js -*/ - -// leaflet-map -var mymap = L.map('leaflet-map').setView([51.505, -0.09], 13); - -L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', { - maxZoom: 18, - attribution: 'Map data © OpenStreetMap contributors, ' + - 'CC-BY-SA, ' + - 'Imagery © Mapbox', - id: 'mapbox/streets-v11', - tileSize: 512, - zoomOffset: -1 -}).addTo(mymap); - -// leaflet-map-marker -var markermap = L.map('leaflet-map-marker').setView([51.505, -0.09], 13); - -L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', { - maxZoom: 18, - attribution: 'Map data © OpenStreetMap contributors, ' + - 'CC-BY-SA, ' + - 'Imagery © Mapbox', - id: 'mapbox/streets-v11', - tileSize: 512, - zoomOffset: -1 -}).addTo(markermap); - -L.marker([51.5, -0.09]).addTo(markermap); - -L.circle([51.508, -0.11], { - color: '#0ab39c', - fillColor: '#0ab39c', - fillOpacity: 0.5, - radius: 500 -}).addTo(markermap); - -L.polygon([ - [51.509, -0.08], - [51.503, -0.06], - [51.51, -0.047] -], { - color: '#405189', - fillColor: '#405189', -}).addTo(markermap); - - -// Working with popups -var popupmap = L.map('leaflet-map-popup').setView([51.505, -0.09], 13); - -L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', { - maxZoom: 18, - attribution: 'Map data © OpenStreetMap contributors, ' + - 'CC-BY-SA, ' + - 'Imagery © Mapbox', - id: 'mapbox/streets-v11', - tileSize: 512, - zoomOffset: -1 -}).addTo(popupmap); - -L.marker([51.5, -0.09]).addTo(popupmap) - .bindPopup("Hello world!
    I am a popup.").openPopup(); - -L.circle([51.508, -0.11], 500, { - color: '#f06548', - fillColor: '#f06548', - fillOpacity: 0.5 -}).addTo(popupmap).bindPopup("I am a circle."); - -L.polygon([ - [51.509, -0.08], - [51.503, -0.06], - [51.51, -0.047] -], { - color: '#405189', - fillColor: '#405189', -}).addTo(popupmap).bindPopup("I am a polygon."); - -var popup = L.popup(); - -// leaflet-map-custom-icons -var customiconsmap = L.map('leaflet-map-custom-icons').setView([51.5, -0.09], 13); - -L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - attribution: '© OpenStreetMap contributors' -}).addTo(customiconsmap); - -var LeafIcon = L.Icon.extend({ - options: { - iconSize: [45, 45], - iconAnchor: [22, 94], - popupAnchor: [-3, -76] - } -}); - -var greenIcon = new LeafIcon({ - iconUrl: 'assets/images/logo-sm.png' -}); - -L.marker([51.5, -0.09], { - icon: greenIcon -}).addTo(customiconsmap); - -// Interactive Choropleth Map -var interactivemap = L.map('leaflet-map-interactive-map').setView([37.8, -96], 4); - -L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', { - maxZoom: 18, - attribution: 'Map data © OpenStreetMap contributors, ' + - 'CC-BY-SA, ' + - 'Imagery © Mapbox', - id: 'mapbox/light-v9', - tileSize: 512, - zoomOffset: -1 -}).addTo(interactivemap); - -// get color depending on population density value -function getColor(d) { - return d > 1000 ? '#405189' : - d > 500 ? '#516194' : - d > 200 ? '#63719E' : - d > 100 ? '#7480A9' : - d > 50 ? '#8590B4' : - d > 20 ? '#97A0BF' : - d > 10 ? '#A8B0C9' : - '#A8B0C9'; -} - -function style(feature) { - return { - weight: 2, - opacity: 1, - color: 'white', - dashArray: '3', - fillOpacity: 0.7, - fillColor: getColor(feature.properties.density) - }; -} - -var geojson = L.geoJson(statesData, { - style: style, -}).addTo(interactivemap); - -// leaflet-map-group-control -var cities = L.layerGroup(); - -L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.').addTo(cities), - L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.').addTo(cities), - L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.').addTo(cities), - L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.').addTo(cities); - - -var mbAttr = 'Map data © OpenStreetMap contributors, ' + - 'CC-BY-SA, ' + - 'Imagery © Mapbox', - mbUrl = 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw'; - -var grayscale = L.tileLayer(mbUrl, { - id: 'mapbox/light-v9', - tileSize: 512, - zoomOffset: -1, - attribution: mbAttr - }), - streets = L.tileLayer(mbUrl, { - id: 'mapbox/streets-v11', - tileSize: 512, - zoomOffset: -1, - attribution: mbAttr - }); - -var layergroupcontrolmap = L.map('leaflet-map-group-control', { - center: [39.73, -104.99], - zoom: 10, - layers: [streets, cities] -}); - -var baseLayers = { - "Grayscale": grayscale, - "Streets": streets -}; - -var overlays = { - "Cities": cities -}; - -L.control.layers(baseLayers, overlays).addTo(layergroupcontrolmap); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/leaflet-us-states.js b/src/main/resources/static/assets/js/pages/leaflet-us-states.js deleted file mode 100644 index 7f6af2f..0000000 --- a/src/main/resources/static/assets/js/pages/leaflet-us-states.js +++ /dev/null @@ -1,54 +0,0 @@ -var statesData = {"type":"FeatureCollection","features":[ -{"type":"Feature","id":"01","properties":{"name":"Alabama","density":94.65},"geometry":{"type":"Polygon","coordinates":[[[-87.359296,35.00118],[-85.606675,34.984749],[-85.431413,34.124869],[-85.184951,32.859696],[-85.069935,32.580372],[-84.960397,32.421541],[-85.004212,32.322956],[-84.889196,32.262709],[-85.058981,32.13674],[-85.053504,32.01077],[-85.141136,31.840985],[-85.042551,31.539753],[-85.113751,31.27686],[-85.004212,31.003013],[-85.497137,30.997536],[-87.600282,30.997536],[-87.633143,30.86609],[-87.408589,30.674397],[-87.446927,30.510088],[-87.37025,30.427934],[-87.518128,30.280057],[-87.655051,30.247195],[-87.90699,30.411504],[-87.934375,30.657966],[-88.011052,30.685351],[-88.10416,30.499135],[-88.137022,30.318396],[-88.394438,30.367688],[-88.471115,31.895754],[-88.241084,33.796253],[-88.098683,34.891641],[-88.202745,34.995703],[-87.359296,35.00118]]]}}, -{"type":"Feature","id":"02","properties":{"name":"Alaska","density":1.264},"geometry":{"type":"MultiPolygon","coordinates":[[[[-131.602021,55.117982],[-131.569159,55.28229],[-131.355558,55.183705],[-131.38842,55.01392],[-131.645836,55.035827],[-131.602021,55.117982]]],[[[-131.832052,55.42469],[-131.645836,55.304197],[-131.749898,55.128935],[-131.832052,55.189182],[-131.832052,55.42469]]],[[[-132.976733,56.437924],[-132.735747,56.459832],[-132.631685,56.421493],[-132.664547,56.273616],[-132.878148,56.240754],[-133.069841,56.333862],[-132.976733,56.437924]]],[[[-133.595627,56.350293],[-133.162949,56.317431],[-133.05341,56.125739],[-132.620732,55.912138],[-132.472854,55.780691],[-132.4619,55.671152],[-132.357838,55.649245],[-132.341408,55.506844],[-132.166146,55.364444],[-132.144238,55.238474],[-132.029222,55.276813],[-131.97993,55.178228],[-131.958022,54.789365],[-132.029222,54.701734],[-132.308546,54.718165],[-132.385223,54.915335],[-132.483808,54.898904],[-132.686455,55.046781],[-132.746701,54.997489],[-132.916486,55.046781],[-132.889102,54.898904],[-132.73027,54.937242],[-132.626209,54.882473],[-132.675501,54.679826],[-132.867194,54.701734],[-133.157472,54.95915],[-133.239626,55.090597],[-133.223195,55.22752],[-133.453227,55.216566],[-133.453227,55.320628],[-133.277964,55.331582],[-133.102702,55.42469],[-133.17938,55.588998],[-133.387503,55.62186],[-133.420365,55.884753],[-133.497042,56.0162],[-133.639442,55.923092],[-133.694212,56.070969],[-133.546335,56.142169],[-133.666827,56.311955],[-133.595627,56.350293]]],[[[-133.738027,55.556137],[-133.546335,55.490413],[-133.414888,55.572568],[-133.283441,55.534229],[-133.420365,55.386352],[-133.633966,55.430167],[-133.738027,55.556137]]],[[[-133.907813,56.930849],[-134.050213,57.029434],[-133.885905,57.095157],[-133.343688,57.002049],[-133.102702,57.007526],[-132.932917,56.82131],[-132.620732,56.667956],[-132.653593,56.55294],[-132.817901,56.492694],[-133.042456,56.520078],[-133.201287,56.448878],[-133.420365,56.492694],[-133.66135,56.448878],[-133.710643,56.684386],[-133.688735,56.837741],[-133.869474,56.843218],[-133.907813,56.930849]]],[[[-134.115936,56.48174],[-134.25286,56.558417],[-134.400737,56.722725],[-134.417168,56.848695],[-134.296675,56.908941],[-134.170706,56.848695],[-134.143321,56.952757],[-133.748981,56.772017],[-133.710643,56.596755],[-133.847566,56.574848],[-133.935197,56.377678],[-133.836612,56.322908],[-133.957105,56.092877],[-134.110459,56.142169],[-134.132367,55.999769],[-134.230952,56.070969],[-134.291198,56.350293],[-134.115936,56.48174]]],[[[-134.636246,56.28457],[-134.669107,56.169554],[-134.806031,56.235277],[-135.178463,56.67891],[-135.413971,56.810356],[-135.331817,56.914418],[-135.424925,57.166357],[-135.687818,57.369004],[-135.419448,57.566174],[-135.298955,57.48402],[-135.063447,57.418296],[-134.849846,57.407343],[-134.844369,57.248511],[-134.636246,56.728202],[-134.636246,56.28457]]],[[[-134.712923,58.223407],[-134.373353,58.14673],[-134.176183,58.157683],[-134.187137,58.081006],[-133.902336,57.807159],[-134.099505,57.850975],[-134.148798,57.757867],[-133.935197,57.615466],[-133.869474,57.363527],[-134.083075,57.297804],[-134.154275,57.210173],[-134.499322,57.029434],[-134.603384,57.034911],[-134.6472,57.226604],[-134.575999,57.341619],[-134.608861,57.511404],[-134.729354,57.719528],[-134.707446,57.829067],[-134.784123,58.097437],[-134.91557,58.212453],[-134.953908,58.409623],[-134.712923,58.223407]]],[[[-135.857603,57.330665],[-135.715203,57.330665],[-135.567326,57.149926],[-135.633049,57.023957],[-135.857603,56.996572],[-135.824742,57.193742],[-135.857603,57.330665]]],[[[-136.279328,58.206976],[-135.978096,58.201499],[-135.780926,58.28913],[-135.496125,58.168637],[-135.64948,58.037191],[-135.59471,57.987898],[-135.45231,58.135776],[-135.107263,58.086483],[-134.91557,57.976944],[-135.025108,57.779775],[-134.937477,57.763344],[-134.822462,57.500451],[-135.085355,57.462112],[-135.572802,57.675713],[-135.556372,57.456635],[-135.709726,57.369004],[-135.890465,57.407343],[-136.000004,57.544266],[-136.208128,57.637374],[-136.366959,57.829067],[-136.569606,57.916698],[-136.558652,58.075529],[-136.421728,58.130299],[-136.377913,58.267222],[-136.279328,58.206976]]],[[[-147.079854,60.200582],[-147.501579,59.948643],[-147.53444,59.850058],[-147.874011,59.784335],[-147.80281,59.937689],[-147.435855,60.09652],[-147.205824,60.271782],[-147.079854,60.200582]]],[[[-147.561825,60.578491],[-147.616594,60.370367],[-147.758995,60.156767],[-147.956165,60.227967],[-147.791856,60.474429],[-147.561825,60.578491]]],[[[-147.786379,70.245291],[-147.682318,70.201475],[-147.162008,70.15766],[-146.888161,70.185044],[-146.510252,70.185044],[-146.099482,70.146706],[-145.858496,70.168614],[-145.622988,70.08646],[-145.195787,69.993352],[-144.620708,69.971444],[-144.461877,70.026213],[-144.078491,70.059075],[-143.914183,70.130275],[-143.497935,70.141229],[-143.503412,70.091936],[-143.25695,70.119321],[-142.747594,70.042644],[-142.402547,69.916674],[-142.079408,69.856428],[-142.008207,69.801659],[-141.712453,69.790705],[-141.433129,69.697597],[-141.378359,69.63735],[-141.208574,69.686643],[-141.00045,69.648304],[-141.00045,60.304644],[-140.53491,60.22249],[-140.474664,60.310121],[-139.987216,60.184151],[-139.696939,60.342983],[-139.088998,60.359413],[-139.198537,60.091043],[-139.045183,59.997935],[-138.700135,59.910304],[-138.623458,59.767904],[-137.604747,59.242118],[-137.445916,58.908024],[-137.265177,59.001132],[-136.827022,59.159963],[-136.580559,59.16544],[-136.465544,59.285933],[-136.476498,59.466672],[-136.301236,59.466672],[-136.25742,59.625503],[-135.945234,59.663842],[-135.479694,59.800766],[-135.025108,59.565257],[-135.068924,59.422857],[-134.959385,59.280456],[-134.701969,59.247595],[-134.378829,59.033994],[-134.400737,58.973748],[-134.25286,58.858732],[-133.842089,58.727285],[-133.173903,58.152206],[-133.075318,57.998852],[-132.867194,57.845498],[-132.560485,57.505928],[-132.253777,57.21565],[-132.368792,57.095157],[-132.05113,57.051341],[-132.127807,56.876079],[-131.870391,56.804879],[-131.837529,56.602232],[-131.580113,56.613186],[-131.087188,56.405062],[-130.78048,56.366724],[-130.621648,56.268139],[-130.468294,56.240754],[-130.424478,56.142169],[-130.101339,56.114785],[-130.002754,55.994292],[-130.150631,55.769737],[-130.128724,55.583521],[-129.986323,55.276813],[-130.095862,55.200136],[-130.336847,54.920812],[-130.687372,54.718165],[-130.785957,54.822227],[-130.917403,54.789365],[-131.010511,54.997489],[-130.983126,55.08512],[-131.092665,55.189182],[-130.862634,55.298721],[-130.928357,55.337059],[-131.158389,55.200136],[-131.284358,55.287767],[-131.426759,55.238474],[-131.843006,55.457552],[-131.700606,55.698537],[-131.963499,55.616383],[-131.974453,55.49589],[-132.182576,55.588998],[-132.226392,55.704014],[-132.083991,55.829984],[-132.127807,55.955953],[-132.324977,55.851892],[-132.522147,56.076446],[-132.642639,56.032631],[-132.719317,56.218847],[-132.527624,56.339339],[-132.341408,56.339339],[-132.396177,56.487217],[-132.297592,56.67891],[-132.450946,56.673433],[-132.768609,56.837741],[-132.993164,57.034911],[-133.51895,57.177311],[-133.507996,57.577128],[-133.677781,57.62642],[-133.639442,57.790728],[-133.814705,57.834544],[-134.072121,58.053622],[-134.143321,58.168637],[-134.586953,58.206976],[-135.074401,58.502731],[-135.282525,59.192825],[-135.38111,59.033994],[-135.337294,58.891593],[-135.140124,58.617746],[-135.189417,58.573931],[-135.05797,58.349376],[-135.085355,58.201499],[-135.277048,58.234361],[-135.430402,58.398669],[-135.633049,58.426053],[-135.91785,58.382238],[-135.912373,58.617746],[-136.087635,58.814916],[-136.246466,58.75467],[-136.876314,58.962794],[-136.931084,58.902547],[-136.586036,58.836824],[-136.317666,58.672516],[-136.213604,58.667039],[-136.180743,58.535592],[-136.043819,58.382238],[-136.388867,58.294607],[-136.591513,58.349376],[-136.59699,58.212453],[-136.859883,58.316515],[-136.947514,58.393192],[-137.111823,58.393192],[-137.566409,58.590362],[-137.900502,58.765624],[-137.933364,58.869686],[-138.11958,59.02304],[-138.634412,59.132579],[-138.919213,59.247595],[-139.417615,59.379041],[-139.746231,59.505011],[-139.718846,59.641934],[-139.625738,59.598119],[-139.5162,59.68575],[-139.625738,59.88292],[-139.488815,59.992458],[-139.554538,60.041751],[-139.801,59.833627],[-140.315833,59.696704],[-140.92925,59.745996],[-141.444083,59.871966],[-141.46599,59.970551],[-141.706976,59.948643],[-141.964392,60.019843],[-142.539471,60.085566],[-142.873564,60.091043],[-143.623905,60.036274],[-143.892275,59.997935],[-144.231845,60.140336],[-144.65357,60.206059],[-144.785016,60.29369],[-144.834309,60.441568],[-145.124586,60.430614],[-145.223171,60.299167],[-145.738004,60.474429],[-145.820158,60.551106],[-146.351421,60.408706],[-146.608837,60.238921],[-146.718376,60.397752],[-146.608837,60.485383],[-146.455483,60.463475],[-145.951604,60.578491],[-146.017328,60.666122],[-146.252836,60.622307],[-146.345944,60.737322],[-146.565022,60.753753],[-146.784099,61.044031],[-146.866253,60.972831],[-147.172962,60.934492],[-147.271547,60.972831],[-147.375609,60.879723],[-147.758995,60.912584],[-147.775426,60.808523],[-148.032842,60.781138],[-148.153334,60.819476],[-148.065703,61.005692],[-148.175242,61.000215],[-148.350504,60.803046],[-148.109519,60.737322],[-148.087611,60.594922],[-147.939734,60.441568],[-148.027365,60.277259],[-148.219058,60.332029],[-148.273827,60.249875],[-148.087611,60.217013],[-147.983549,59.997935],[-148.251919,59.95412],[-148.399797,59.997935],[-148.635305,59.937689],[-148.755798,59.986981],[-149.067984,59.981505],[-149.05703,60.063659],[-149.204907,60.008889],[-149.287061,59.904827],[-149.418508,59.997935],[-149.582816,59.866489],[-149.511616,59.806242],[-149.741647,59.729565],[-149.949771,59.718611],[-150.031925,59.61455],[-150.25648,59.521442],[-150.409834,59.554303],[-150.579619,59.444764],[-150.716543,59.450241],[-151.001343,59.225687],[-151.308052,59.209256],[-151.406637,59.280456],[-151.592853,59.159963],[-151.976239,59.253071],[-151.888608,59.422857],[-151.636669,59.483103],[-151.47236,59.472149],[-151.423068,59.537872],[-151.127313,59.669319],[-151.116359,59.778858],[-151.505222,59.63098],[-151.828361,59.718611],[-151.8667,59.778858],[-151.702392,60.030797],[-151.423068,60.211536],[-151.379252,60.359413],[-151.297098,60.386798],[-151.264237,60.545629],[-151.406637,60.720892],[-151.06159,60.786615],[-150.404357,61.038554],[-150.245526,60.939969],[-150.042879,60.912584],[-149.741647,61.016646],[-150.075741,61.15357],[-150.207187,61.257632],[-150.47008,61.246678],[-150.656296,61.29597],[-150.711066,61.252155],[-151.023251,61.180954],[-151.165652,61.044031],[-151.477837,61.011169],[-151.800977,60.852338],[-151.833838,60.748276],[-152.080301,60.693507],[-152.13507,60.578491],[-152.310332,60.507291],[-152.392486,60.304644],[-152.732057,60.173197],[-152.567748,60.069136],[-152.704672,59.915781],[-153.022334,59.888397],[-153.049719,59.691227],[-153.345474,59.620026],[-153.438582,59.702181],[-153.586459,59.548826],[-153.761721,59.543349],[-153.72886,59.433811],[-154.117723,59.368087],[-154.1944,59.066856],[-153.750768,59.050425],[-153.400243,58.968271],[-153.301658,58.869686],[-153.444059,58.710854],[-153.679567,58.612269],[-153.898645,58.606793],[-153.920553,58.519161],[-154.062953,58.4863],[-153.99723,58.376761],[-154.145107,58.212453],[-154.46277,58.059098],[-154.643509,58.059098],[-154.818771,58.004329],[-154.988556,58.015283],[-155.120003,57.955037],[-155.081664,57.872883],[-155.328126,57.829067],[-155.377419,57.708574],[-155.547204,57.785251],[-155.73342,57.549743],[-156.045606,57.566174],[-156.023698,57.440204],[-156.209914,57.473066],[-156.34136,57.418296],[-156.34136,57.248511],[-156.549484,56.985618],[-156.883577,56.952757],[-157.157424,56.832264],[-157.20124,56.766541],[-157.376502,56.859649],[-157.672257,56.607709],[-157.754411,56.67891],[-157.918719,56.657002],[-157.957058,56.514601],[-158.126843,56.459832],[-158.32949,56.48174],[-158.488321,56.339339],[-158.208997,56.295524],[-158.510229,55.977861],[-159.375585,55.873799],[-159.616571,55.594475],[-159.676817,55.654722],[-159.643955,55.829984],[-159.813741,55.857368],[-160.027341,55.791645],[-160.060203,55.720445],[-160.394296,55.605429],[-160.536697,55.473983],[-160.580512,55.567091],[-160.668143,55.457552],[-160.865313,55.528752],[-161.232268,55.358967],[-161.506115,55.364444],[-161.467776,55.49589],[-161.588269,55.62186],[-161.697808,55.517798],[-161.686854,55.408259],[-162.053809,55.074166],[-162.179779,55.15632],[-162.218117,55.03035],[-162.470057,55.052258],[-162.508395,55.249428],[-162.661749,55.293244],[-162.716519,55.222043],[-162.579595,55.134412],[-162.645319,54.997489],[-162.847965,54.926289],[-163.00132,55.079643],[-163.187536,55.090597],[-163.220397,55.03035],[-163.034181,54.942719],[-163.373752,54.800319],[-163.14372,54.76198],[-163.138243,54.696257],[-163.329936,54.74555],[-163.587352,54.614103],[-164.085754,54.61958],[-164.332216,54.531949],[-164.354124,54.466226],[-164.638925,54.389548],[-164.847049,54.416933],[-164.918249,54.603149],[-164.710125,54.663395],[-164.551294,54.88795],[-164.34317,54.893427],[-163.894061,55.041304],[-163.532583,55.046781],[-163.39566,54.904381],[-163.291598,55.008443],[-163.313505,55.128935],[-163.105382,55.183705],[-162.880827,55.183705],[-162.579595,55.446598],[-162.245502,55.682106],[-161.807347,55.89023],[-161.292514,55.983338],[-161.078914,55.939523],[-160.87079,55.999769],[-160.816021,55.912138],[-160.931036,55.813553],[-160.805067,55.736876],[-160.766728,55.857368],[-160.509312,55.868322],[-160.438112,55.791645],[-160.27928,55.76426],[-160.273803,55.857368],[-160.536697,55.939523],[-160.558604,55.994292],[-160.383342,56.251708],[-160.147834,56.399586],[-159.830171,56.541986],[-159.326293,56.667956],[-158.959338,56.848695],[-158.784076,56.782971],[-158.641675,56.810356],[-158.701922,56.925372],[-158.658106,57.034911],[-158.378782,57.264942],[-157.995396,57.41282],[-157.688688,57.609989],[-157.705118,57.719528],[-157.458656,58.497254],[-157.07527,58.705377],[-157.119086,58.869686],[-158.039212,58.634177],[-158.32949,58.661562],[-158.40069,58.760147],[-158.564998,58.803962],[-158.619768,58.913501],[-158.767645,58.864209],[-158.860753,58.694424],[-158.701922,58.480823],[-158.893615,58.387715],[-159.0634,58.420577],[-159.392016,58.760147],[-159.616571,58.929932],[-159.731586,58.929932],[-159.808264,58.803962],[-159.906848,58.782055],[-160.054726,58.886116],[-160.235465,58.902547],[-160.317619,59.072332],[-160.854359,58.88064],[-161.33633,58.743716],[-161.374669,58.667039],[-161.752577,58.552023],[-161.938793,58.656085],[-161.769008,58.776578],[-161.829255,59.061379],[-161.955224,59.36261],[-161.703285,59.48858],[-161.911409,59.740519],[-162.092148,59.88292],[-162.234548,60.091043],[-162.448149,60.178674],[-162.502918,59.997935],[-162.760334,59.959597],[-163.171105,59.844581],[-163.66403,59.795289],[-163.9324,59.806242],[-164.162431,59.866489],[-164.189816,60.02532],[-164.386986,60.074613],[-164.699171,60.29369],[-164.962064,60.337506],[-165.268773,60.578491],[-165.060649,60.68803],[-165.016834,60.890677],[-165.175665,60.846861],[-165.197573,60.972831],[-165.120896,61.076893],[-165.323543,61.170001],[-165.34545,61.071416],[-165.591913,61.109754],[-165.624774,61.279539],[-165.816467,61.301447],[-165.920529,61.416463],[-165.915052,61.558863],[-166.106745,61.49314],[-166.139607,61.630064],[-165.904098,61.662925],[-166.095791,61.81628],[-165.756221,61.827233],[-165.756221,62.013449],[-165.674067,62.139419],[-165.044219,62.539236],[-164.912772,62.659728],[-164.819664,62.637821],[-164.874433,62.807606],[-164.633448,63.097884],[-164.425324,63.212899],[-164.036462,63.262192],[-163.73523,63.212899],[-163.313505,63.037637],[-163.039658,63.059545],[-162.661749,63.22933],[-162.272887,63.486746],[-162.075717,63.514131],[-162.026424,63.448408],[-161.555408,63.448408],[-161.13916,63.503177],[-160.766728,63.771547],[-160.766728,63.837271],[-160.952944,64.08921],[-160.974852,64.237087],[-161.26513,64.395918],[-161.374669,64.532842],[-161.078914,64.494503],[-160.79959,64.609519],[-160.783159,64.719058],[-161.144637,64.921705],[-161.413007,64.762873],[-161.664946,64.790258],[-161.900455,64.702627],[-162.168825,64.680719],[-162.234548,64.620473],[-162.541257,64.532842],[-162.634365,64.384965],[-162.787719,64.324718],[-162.858919,64.49998],[-163.045135,64.538319],[-163.176582,64.401395],[-163.253259,64.467119],[-163.598306,64.565704],[-164.304832,64.560227],[-164.80871,64.450688],[-165.000403,64.434257],[-165.411174,64.49998],[-166.188899,64.576658],[-166.391546,64.636904],[-166.484654,64.735489],[-166.413454,64.872412],[-166.692778,64.987428],[-166.638008,65.113398],[-166.462746,65.179121],[-166.517516,65.337952],[-166.796839,65.337952],[-167.026871,65.381768],[-167.47598,65.414629],[-167.711489,65.496784],[-168.072967,65.578938],[-168.105828,65.682999],[-167.541703,65.819923],[-166.829701,66.049954],[-166.3313,66.186878],[-166.046499,66.110201],[-165.756221,66.09377],[-165.690498,66.203309],[-165.86576,66.21974],[-165.88219,66.312848],[-165.186619,66.466202],[-164.403417,66.581218],[-163.981692,66.592172],[-163.751661,66.553833],[-163.872153,66.389525],[-163.828338,66.274509],[-163.915969,66.192355],[-163.768091,66.060908],[-163.494244,66.082816],[-163.149197,66.060908],[-162.749381,66.088293],[-162.634365,66.039001],[-162.371472,66.028047],[-162.14144,66.077339],[-161.840208,66.02257],[-161.549931,66.241647],[-161.341807,66.252601],[-161.199406,66.208786],[-161.128206,66.334755],[-161.528023,66.395002],[-161.911409,66.345709],[-161.87307,66.510017],[-162.174302,66.68528],[-162.502918,66.740049],[-162.601503,66.89888],[-162.344087,66.937219],[-162.015471,66.778388],[-162.075717,66.652418],[-161.916886,66.553833],[-161.571838,66.438817],[-161.489684,66.55931],[-161.884024,66.718141],[-161.714239,67.002942],[-161.851162,67.052235],[-162.240025,66.991988],[-162.639842,67.008419],[-162.700088,67.057712],[-162.902735,67.008419],[-163.740707,67.128912],[-163.757138,67.254881],[-164.009077,67.534205],[-164.211724,67.638267],[-164.534863,67.725898],[-165.192096,67.966884],[-165.493328,68.059992],[-165.794559,68.081899],[-166.243668,68.246208],[-166.681824,68.339316],[-166.703731,68.372177],[-166.375115,68.42147],[-166.227238,68.574824],[-166.216284,68.881533],[-165.329019,68.859625],[-164.255539,68.930825],[-163.976215,68.985595],[-163.532583,69.138949],[-163.110859,69.374457],[-163.023228,69.609966],[-162.842489,69.812613],[-162.470057,69.982398],[-162.311225,70.108367],[-161.851162,70.311014],[-161.779962,70.256245],[-161.396576,70.239814],[-160.837928,70.343876],[-160.487404,70.453415],[-159.649432,70.792985],[-159.33177,70.809416],[-159.298908,70.760123],[-158.975769,70.798462],[-158.658106,70.787508],[-158.033735,70.831323],[-157.420318,70.979201],[-156.812377,71.285909],[-156.565915,71.351633],[-156.522099,71.296863],[-155.585543,71.170894],[-155.508865,71.083263],[-155.832005,70.968247],[-155.979882,70.96277],[-155.974405,70.809416],[-155.503388,70.858708],[-155.476004,70.940862],[-155.262403,71.017539],[-155.191203,70.973724],[-155.032372,71.148986],[-154.566832,70.990155],[-154.643509,70.869662],[-154.353231,70.8368],[-154.183446,70.7656],[-153.931507,70.880616],[-153.487874,70.886093],[-153.235935,70.924431],[-152.589656,70.886093],[-152.26104,70.842277],[-152.419871,70.606769],[-151.817408,70.546523],[-151.773592,70.486276],[-151.187559,70.382214],[-151.182082,70.431507],[-150.760358,70.49723],[-150.355064,70.491753],[-150.349588,70.436984],[-150.114079,70.431507],[-149.867617,70.508184],[-149.462323,70.519138],[-149.177522,70.486276],[-148.78866,70.404122],[-148.607921,70.420553],[-148.350504,70.305537],[-148.202627,70.349353],[-147.961642,70.316491],[-147.786379,70.245291]]],[[[-152.94018,58.026237],[-152.945657,57.982421],[-153.290705,58.048145],[-153.044242,58.305561],[-152.819688,58.327469],[-152.666333,58.562977],[-152.496548,58.354853],[-152.354148,58.426053],[-152.080301,58.311038],[-152.080301,58.152206],[-152.480117,58.130299],[-152.655379,58.059098],[-152.94018,58.026237]]],[[[-153.958891,57.538789],[-153.67409,57.670236],[-153.931507,57.69762],[-153.936983,57.812636],[-153.723383,57.889313],[-153.570028,57.834544],[-153.548121,57.719528],[-153.46049,57.796205],[-153.455013,57.96599],[-153.268797,57.889313],[-153.235935,57.998852],[-153.071627,57.933129],[-152.874457,57.933129],[-152.721103,57.993375],[-152.469163,57.889313],[-152.469163,57.599035],[-152.151501,57.620943],[-152.359625,57.42925],[-152.74301,57.505928],[-152.60061,57.379958],[-152.710149,57.275896],[-152.907319,57.325188],[-152.912796,57.128019],[-153.214027,57.073249],[-153.312612,56.991095],[-153.498828,57.067772],[-153.695998,56.859649],[-153.849352,56.837741],[-154.013661,56.744633],[-154.073907,56.969187],[-154.303938,56.848695],[-154.314892,56.919895],[-154.523016,56.991095],[-154.539447,57.193742],[-154.742094,57.275896],[-154.627078,57.511404],[-154.227261,57.659282],[-153.980799,57.648328],[-153.958891,57.538789]]],[[[-154.53397,56.602232],[-154.742094,56.399586],[-154.807817,56.432447],[-154.53397,56.602232]]],[[[-155.634835,55.923092],[-155.476004,55.912138],[-155.530773,55.704014],[-155.793666,55.731399],[-155.837482,55.802599],[-155.634835,55.923092]]],[[[-159.890418,55.28229],[-159.950664,55.068689],[-160.257373,54.893427],[-160.109495,55.161797],[-160.005433,55.134412],[-159.890418,55.28229]]],[[[-160.520266,55.358967],[-160.33405,55.358967],[-160.339527,55.249428],[-160.525743,55.128935],[-160.690051,55.211089],[-160.794113,55.134412],[-160.854359,55.320628],[-160.79959,55.380875],[-160.520266,55.358967]]],[[[-162.256456,54.981058],[-162.234548,54.893427],[-162.349564,54.838658],[-162.437195,54.931766],[-162.256456,54.981058]]],[[[-162.415287,63.634624],[-162.563165,63.536039],[-162.612457,63.62367],[-162.415287,63.634624]]],[[[-162.80415,54.488133],[-162.590549,54.449795],[-162.612457,54.367641],[-162.782242,54.373118],[-162.80415,54.488133]]],[[[-165.548097,54.29644],[-165.476897,54.181425],[-165.630251,54.132132],[-165.685021,54.252625],[-165.548097,54.29644]]],[[[-165.73979,54.15404],[-166.046499,54.044501],[-166.112222,54.121178],[-165.980775,54.219763],[-165.73979,54.15404]]],[[[-166.364161,60.359413],[-166.13413,60.397752],[-166.084837,60.326552],[-165.88219,60.342983],[-165.685021,60.277259],[-165.646682,59.992458],[-165.750744,59.89935],[-166.00816,59.844581],[-166.062929,59.745996],[-166.440838,59.855535],[-166.6161,59.850058],[-166.994009,59.992458],[-167.125456,59.992458],[-167.344534,60.074613],[-167.421211,60.206059],[-167.311672,60.238921],[-166.93924,60.206059],[-166.763978,60.310121],[-166.577762,60.321075],[-166.495608,60.392275],[-166.364161,60.359413]]],[[[-166.375115,54.01164],[-166.210807,53.934962],[-166.5449,53.748746],[-166.539423,53.715885],[-166.117699,53.852808],[-166.112222,53.776131],[-166.282007,53.683023],[-166.555854,53.622777],[-166.583239,53.529669],[-166.878994,53.431084],[-167.13641,53.425607],[-167.306195,53.332499],[-167.623857,53.250345],[-167.793643,53.337976],[-167.459549,53.442038],[-167.355487,53.425607],[-167.103548,53.513238],[-167.163794,53.611823],[-167.021394,53.715885],[-166.807793,53.666592],[-166.785886,53.732316],[-167.015917,53.754223],[-167.141887,53.825424],[-167.032348,53.945916],[-166.643485,54.017116],[-166.561331,53.880193],[-166.375115,54.01164]]],[[[-168.790446,53.157237],[-168.40706,53.34893],[-168.385152,53.431084],[-168.237275,53.524192],[-168.007243,53.568007],[-167.886751,53.518715],[-167.842935,53.387268],[-168.270136,53.244868],[-168.500168,53.036744],[-168.686384,52.965544],[-168.790446,53.157237]]],[[[-169.74891,52.894344],[-169.705095,52.795759],[-169.962511,52.790282],[-169.989896,52.856005],[-169.74891,52.894344]]],[[[-170.148727,57.221127],[-170.28565,57.128019],[-170.313035,57.221127],[-170.148727,57.221127]]],[[[-170.669036,52.697174],[-170.603313,52.604066],[-170.789529,52.538343],[-170.816914,52.636928],[-170.669036,52.697174]]],[[[-171.742517,63.716778],[-170.94836,63.5689],[-170.488297,63.69487],[-170.280174,63.683916],[-170.093958,63.612716],[-170.044665,63.492223],[-169.644848,63.4265],[-169.518879,63.366254],[-168.99857,63.338869],[-168.686384,63.295053],[-168.856169,63.147176],[-169.108108,63.180038],[-169.376478,63.152653],[-169.513402,63.08693],[-169.639372,62.939052],[-169.831064,63.075976],[-170.055619,63.169084],[-170.263743,63.180038],[-170.362328,63.2841],[-170.866206,63.415546],[-171.101715,63.421023],[-171.463193,63.306007],[-171.73704,63.366254],[-171.852055,63.486746],[-171.742517,63.716778]]],[[[-172.432611,52.390465],[-172.41618,52.275449],[-172.607873,52.253542],[-172.569535,52.352127],[-172.432611,52.390465]]],[[[-173.626584,52.14948],[-173.495138,52.105664],[-173.122706,52.111141],[-173.106275,52.07828],[-173.549907,52.028987],[-173.626584,52.14948]]],[[[-174.322156,52.280926],[-174.327632,52.379511],[-174.185232,52.41785],[-173.982585,52.319265],[-174.059262,52.226157],[-174.179755,52.231634],[-174.141417,52.127572],[-174.333109,52.116618],[-174.738403,52.007079],[-174.968435,52.039941],[-174.902711,52.116618],[-174.656249,52.105664],[-174.322156,52.280926]]],[[[-176.469116,51.853725],[-176.288377,51.870156],[-176.288377,51.744186],[-176.518409,51.760617],[-176.80321,51.61274],[-176.912748,51.80991],[-176.792256,51.815386],[-176.775825,51.963264],[-176.627947,51.968741],[-176.627947,51.859202],[-176.469116,51.853725]]],[[[-177.153734,51.946833],[-177.044195,51.897541],[-177.120872,51.727755],[-177.274226,51.678463],[-177.279703,51.782525],[-177.153734,51.946833]]],[[[-178.123152,51.919448],[-177.953367,51.913971],[-177.800013,51.793479],[-177.964321,51.651078],[-178.123152,51.919448]]],[[[-187.107557,52.992929],[-187.293773,52.927205],[-187.304726,52.823143],[-188.90491,52.762897],[-188.642017,52.927205],[-188.642017,53.003883],[-187.107557,52.992929]]]]}}, -{"type":"Feature","id":"04","properties":{"name":"Arizona","density":57.05},"geometry":{"type":"Polygon","coordinates":[[[-109.042503,37.000263],[-109.04798,31.331629],[-111.074448,31.331629],[-112.246513,31.704061],[-114.815198,32.492741],[-114.72209,32.717295],[-114.524921,32.755634],[-114.470151,32.843265],[-114.524921,33.029481],[-114.661844,33.034958],[-114.727567,33.40739],[-114.524921,33.54979],[-114.497536,33.697668],[-114.535874,33.933176],[-114.415382,34.108438],[-114.256551,34.174162],[-114.136058,34.305608],[-114.333228,34.448009],[-114.470151,34.710902],[-114.634459,34.87521],[-114.634459,35.00118],[-114.574213,35.138103],[-114.596121,35.324319],[-114.678275,35.516012],[-114.738521,36.102045],[-114.371566,36.140383],[-114.251074,36.01989],[-114.152489,36.025367],[-114.048427,36.195153],[-114.048427,37.000263],[-110.499369,37.00574],[-109.042503,37.000263]]]}}, -{"type":"Feature","id":"05","properties":{"name":"Arkansas","density":56.43},"geometry":{"type":"Polygon","coordinates":[[[-94.473842,36.501861],[-90.152536,36.496384],[-90.064905,36.304691],[-90.218259,36.184199],[-90.377091,35.997983],[-89.730812,35.997983],[-89.763673,35.811767],[-89.911551,35.756997],[-89.944412,35.603643],[-90.130628,35.439335],[-90.114197,35.198349],[-90.212782,35.023087],[-90.311367,34.995703],[-90.251121,34.908072],[-90.409952,34.831394],[-90.481152,34.661609],[-90.585214,34.617794],[-90.568783,34.420624],[-90.749522,34.365854],[-90.744046,34.300131],[-90.952169,34.135823],[-90.891923,34.026284],[-91.072662,33.867453],[-91.231493,33.560744],[-91.056231,33.429298],[-91.143862,33.347144],[-91.089093,33.13902],[-91.16577,33.002096],[-93.608485,33.018527],[-94.041164,33.018527],[-94.041164,33.54979],[-94.183564,33.593606],[-94.380734,33.544313],[-94.484796,33.637421],[-94.430026,35.395519],[-94.616242,36.501861],[-94.473842,36.501861]]]}}, -{"type":"Feature","id":"06","properties":{"name":"California","density":241.7},"geometry":{"type":"Polygon","coordinates":[[[-123.233256,42.006186],[-122.378853,42.011663],[-121.037003,41.995232],[-120.001861,41.995232],[-119.996384,40.264519],[-120.001861,38.999346],[-118.71478,38.101128],[-117.498899,37.21934],[-116.540435,36.501861],[-115.85034,35.970598],[-114.634459,35.00118],[-114.634459,34.87521],[-114.470151,34.710902],[-114.333228,34.448009],[-114.136058,34.305608],[-114.256551,34.174162],[-114.415382,34.108438],[-114.535874,33.933176],[-114.497536,33.697668],[-114.524921,33.54979],[-114.727567,33.40739],[-114.661844,33.034958],[-114.524921,33.029481],[-114.470151,32.843265],[-114.524921,32.755634],[-114.72209,32.717295],[-116.04751,32.624187],[-117.126467,32.536556],[-117.24696,32.668003],[-117.252437,32.876127],[-117.329114,33.122589],[-117.471515,33.297851],[-117.7837,33.538836],[-118.183517,33.763391],[-118.260194,33.703145],[-118.413548,33.741483],[-118.391641,33.840068],[-118.566903,34.042715],[-118.802411,33.998899],[-119.218659,34.146777],[-119.278905,34.26727],[-119.558229,34.415147],[-119.875891,34.40967],[-120.138784,34.475393],[-120.472878,34.448009],[-120.64814,34.579455],[-120.609801,34.858779],[-120.670048,34.902595],[-120.631709,35.099764],[-120.894602,35.247642],[-120.905556,35.450289],[-121.004141,35.461243],[-121.168449,35.636505],[-121.283465,35.674843],[-121.332757,35.784382],[-121.716143,36.195153],[-121.896882,36.315645],[-121.935221,36.638785],[-121.858544,36.6114],[-121.787344,36.803093],[-121.929744,36.978355],[-122.105006,36.956447],[-122.335038,37.115279],[-122.417192,37.241248],[-122.400761,37.361741],[-122.515777,37.520572],[-122.515777,37.783465],[-122.329561,37.783465],[-122.406238,38.15042],[-122.488392,38.112082],[-122.504823,37.931343],[-122.701993,37.893004],[-122.937501,38.029928],[-122.97584,38.265436],[-123.129194,38.451652],[-123.331841,38.566668],[-123.44138,38.698114],[-123.737134,38.95553],[-123.687842,39.032208],[-123.824765,39.366301],[-123.764519,39.552517],[-123.85215,39.831841],[-124.109566,40.105688],[-124.361506,40.259042],[-124.410798,40.439781],[-124.158859,40.877937],[-124.109566,41.025814],[-124.158859,41.14083],[-124.065751,41.442061],[-124.147905,41.715908],[-124.257444,41.781632],[-124.213628,42.000709],[-123.233256,42.006186]]]}}, -{"type":"Feature","id":"08","properties":{"name":"Colorado","density":49.33},"geometry":{"type":"Polygon","coordinates":[[[-107.919731,41.003906],[-105.728954,40.998429],[-104.053011,41.003906],[-102.053927,41.003906],[-102.053927,40.001626],[-102.042974,36.994786],[-103.001438,37.000263],[-104.337812,36.994786],[-106.868158,36.994786],[-107.421329,37.000263],[-109.042503,37.000263],[-109.042503,38.166851],[-109.058934,38.27639],[-109.053457,39.125316],[-109.04798,40.998429],[-107.919731,41.003906]]]}}, -{"type":"Feature","id":"09","properties":{"name":"Connecticut","density":739.1},"geometry":{"type":"Polygon","coordinates":[[[-73.053528,42.039048],[-71.799309,42.022617],[-71.799309,42.006186],[-71.799309,41.414677],[-71.859555,41.321569],[-71.947186,41.338],[-72.385341,41.261322],[-72.905651,41.28323],[-73.130205,41.146307],[-73.371191,41.102491],[-73.655992,40.987475],[-73.727192,41.102491],[-73.48073,41.21203],[-73.55193,41.294184],[-73.486206,42.050002],[-73.053528,42.039048]]]}}, -{"type":"Feature","id":"10","properties":{"name":"Delaware","density":464.3},"geometry":{"type":"Polygon","coordinates":[[[-75.414089,39.804456],[-75.507197,39.683964],[-75.611259,39.61824],[-75.589352,39.459409],[-75.441474,39.311532],[-75.403136,39.065069],[-75.189535,38.807653],[-75.09095,38.796699],[-75.047134,38.451652],[-75.693413,38.462606],[-75.786521,39.722302],[-75.616736,39.831841],[-75.414089,39.804456]]]}}, -{"type":"Feature","id":"11","properties":{"name":"District of Columbia","density":10065},"geometry":{"type":"Polygon","coordinates":[[[-77.035264,38.993869],[-76.909294,38.895284],[-77.040741,38.791222],[-77.117418,38.933623],[-77.035264,38.993869]]]}}, -{"type":"Feature","id":"12","properties":{"name":"Florida","density":353.4},"geometry":{"type":"Polygon","coordinates":[[[-85.497137,30.997536],[-85.004212,31.003013],[-84.867289,30.712735],[-83.498053,30.647012],[-82.216449,30.570335],[-82.167157,30.356734],[-82.046664,30.362211],[-82.002849,30.564858],[-82.041187,30.751074],[-81.948079,30.827751],[-81.718048,30.745597],[-81.444201,30.707258],[-81.383954,30.27458],[-81.257985,29.787132],[-80.967707,29.14633],[-80.524075,28.461713],[-80.589798,28.41242],[-80.56789,28.094758],[-80.381674,27.738757],[-80.091397,27.021277],[-80.03115,26.796723],[-80.036627,26.566691],[-80.146166,25.739673],[-80.239274,25.723243],[-80.337859,25.465826],[-80.304997,25.383672],[-80.49669,25.197456],[-80.573367,25.241272],[-80.759583,25.164595],[-81.077246,25.120779],[-81.170354,25.224841],[-81.126538,25.378195],[-81.351093,25.821827],[-81.526355,25.903982],[-81.679709,25.843735],[-81.800202,26.090198],[-81.833064,26.292844],[-82.041187,26.517399],[-82.09048,26.665276],[-82.057618,26.878877],[-82.172634,26.917216],[-82.145249,26.791246],[-82.249311,26.758384],[-82.566974,27.300601],[-82.692943,27.437525],[-82.391711,27.837342],[-82.588881,27.815434],[-82.720328,27.689464],[-82.851774,27.886634],[-82.676512,28.434328],[-82.643651,28.888914],[-82.764143,28.998453],[-82.802482,29.14633],[-82.994175,29.179192],[-83.218729,29.420177],[-83.399469,29.518762],[-83.410422,29.66664],[-83.536392,29.721409],[-83.640454,29.885717],[-84.02384,30.104795],[-84.357933,30.055502],[-84.341502,29.902148],[-84.451041,29.929533],[-84.867289,29.743317],[-85.310921,29.699501],[-85.299967,29.80904],[-85.404029,29.940487],[-85.924338,30.236241],[-86.29677,30.362211],[-86.630863,30.395073],[-86.910187,30.373165],[-87.518128,30.280057],[-87.37025,30.427934],[-87.446927,30.510088],[-87.408589,30.674397],[-87.633143,30.86609],[-87.600282,30.997536],[-85.497137,30.997536]]]}}, -{"type":"Feature","id":"13","properties":{"name":"Georgia","density":169.5},"geometry":{"type":"Polygon","coordinates":[[[-83.109191,35.00118],[-83.322791,34.787579],[-83.339222,34.683517],[-83.005129,34.469916],[-82.901067,34.486347],[-82.747713,34.26727],[-82.714851,34.152254],[-82.55602,33.94413],[-82.325988,33.81816],[-82.194542,33.631944],[-81.926172,33.462159],[-81.937125,33.347144],[-81.761863,33.160928],[-81.493493,33.007573],[-81.42777,32.843265],[-81.416816,32.629664],[-81.279893,32.558464],[-81.121061,32.290094],[-81.115584,32.120309],[-80.885553,32.032678],[-81.132015,31.693108],[-81.175831,31.517845],[-81.279893,31.364491],[-81.290846,31.20566],[-81.400385,31.13446],[-81.444201,30.707258],[-81.718048,30.745597],[-81.948079,30.827751],[-82.041187,30.751074],[-82.002849,30.564858],[-82.046664,30.362211],[-82.167157,30.356734],[-82.216449,30.570335],[-83.498053,30.647012],[-84.867289,30.712735],[-85.004212,31.003013],[-85.113751,31.27686],[-85.042551,31.539753],[-85.141136,31.840985],[-85.053504,32.01077],[-85.058981,32.13674],[-84.889196,32.262709],[-85.004212,32.322956],[-84.960397,32.421541],[-85.069935,32.580372],[-85.184951,32.859696],[-85.431413,34.124869],[-85.606675,34.984749],[-84.319594,34.990226],[-83.618546,34.984749],[-83.109191,35.00118]]]}}, -{"type":"Feature","id":"15","properties":{"name":"Hawaii","density":214.1},"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.634835,18.948267],[-155.881297,19.035898],[-155.919636,19.123529],[-155.886774,19.348084],[-156.062036,19.73147],[-155.925113,19.857439],[-155.826528,20.032702],[-155.897728,20.147717],[-155.87582,20.26821],[-155.596496,20.12581],[-155.284311,20.021748],[-155.092618,19.868393],[-155.092618,19.736947],[-154.807817,19.523346],[-154.983079,19.348084],[-155.295265,19.26593],[-155.514342,19.134483],[-155.634835,18.948267]]],[[[-156.587823,21.029505],[-156.472807,20.892581],[-156.324929,20.952827],[-156.00179,20.793996],[-156.051082,20.651596],[-156.379699,20.580396],[-156.445422,20.60778],[-156.461853,20.783042],[-156.631638,20.821381],[-156.697361,20.919966],[-156.587823,21.029505]]],[[[-156.982162,21.210244],[-157.080747,21.106182],[-157.310779,21.106182],[-157.239579,21.221198],[-156.982162,21.210244]]],[[[-157.951581,21.697691],[-157.842042,21.462183],[-157.896811,21.325259],[-158.110412,21.303352],[-158.252813,21.582676],[-158.126843,21.588153],[-157.951581,21.697691]]],[[[-159.468693,22.228955],[-159.353678,22.218001],[-159.298908,22.113939],[-159.33177,21.966061],[-159.446786,21.872953],[-159.764448,21.987969],[-159.726109,22.152277],[-159.468693,22.228955]]]]}}, -{"type":"Feature","id":"16","properties":{"name":"Idaho","density":19.15},"geometry":{"type":"Polygon","coordinates":[[[-116.04751,49.000239],[-116.04751,47.976051],[-115.724371,47.696727],[-115.718894,47.42288],[-115.527201,47.302388],[-115.324554,47.258572],[-115.302646,47.187372],[-114.930214,46.919002],[-114.886399,46.809463],[-114.623506,46.705401],[-114.612552,46.639678],[-114.322274,46.645155],[-114.464674,46.272723],[-114.492059,46.037214],[-114.387997,45.88386],[-114.568736,45.774321],[-114.497536,45.670259],[-114.546828,45.560721],[-114.333228,45.456659],[-114.086765,45.593582],[-113.98818,45.703121],[-113.807441,45.604536],[-113.834826,45.522382],[-113.736241,45.330689],[-113.571933,45.128042],[-113.45144,45.056842],[-113.456917,44.865149],[-113.341901,44.782995],[-113.133778,44.772041],[-113.002331,44.448902],[-112.887315,44.394132],[-112.783254,44.48724],[-112.471068,44.481763],[-112.241036,44.569394],[-112.104113,44.520102],[-111.868605,44.563917],[-111.819312,44.509148],[-111.616665,44.547487],[-111.386634,44.75561],[-111.227803,44.580348],[-111.047063,44.476286],[-111.047063,42.000709],[-112.164359,41.995232],[-114.04295,41.995232],[-117.027882,42.000709],[-117.027882,43.830007],[-116.896436,44.158624],[-116.97859,44.240778],[-117.170283,44.257209],[-117.241483,44.394132],[-117.038836,44.750133],[-116.934774,44.782995],[-116.830713,44.930872],[-116.847143,45.02398],[-116.732128,45.144473],[-116.671881,45.319735],[-116.463758,45.61549],[-116.545912,45.752413],[-116.78142,45.823614],[-116.918344,45.993399],[-116.92382,46.168661],[-117.055267,46.343923],[-117.038836,46.426077],[-117.044313,47.762451],[-117.033359,49.000239],[-116.04751,49.000239]]]}}, -{"type":"Feature","id":"17","properties":{"name":"Illinois","density":231.5},"geometry":{"type":"Polygon","coordinates":[[[-90.639984,42.510065],[-88.788778,42.493634],[-87.802929,42.493634],[-87.83579,42.301941],[-87.682436,42.077386],[-87.523605,41.710431],[-87.529082,39.34987],[-87.63862,39.169131],[-87.512651,38.95553],[-87.49622,38.780268],[-87.62219,38.637868],[-87.655051,38.506421],[-87.83579,38.292821],[-87.950806,38.27639],[-87.923421,38.15042],[-88.000098,38.101128],[-88.060345,37.865619],[-88.027483,37.799896],[-88.15893,37.657496],[-88.065822,37.482234],[-88.476592,37.389126],[-88.514931,37.285064],[-88.421823,37.153617],[-88.547792,37.071463],[-88.914747,37.224817],[-89.029763,37.213863],[-89.183118,37.038601],[-89.133825,36.983832],[-89.292656,36.994786],[-89.517211,37.279587],[-89.435057,37.34531],[-89.517211,37.537003],[-89.517211,37.690357],[-89.84035,37.903958],[-89.949889,37.88205],[-90.059428,38.013497],[-90.355183,38.216144],[-90.349706,38.374975],[-90.179921,38.632391],[-90.207305,38.725499],[-90.10872,38.845992],[-90.251121,38.917192],[-90.470199,38.961007],[-90.585214,38.867899],[-90.661891,38.928146],[-90.727615,39.256762],[-91.061708,39.470363],[-91.368417,39.727779],[-91.494386,40.034488],[-91.50534,40.237135],[-91.417709,40.379535],[-91.401278,40.560274],[-91.121954,40.669813],[-91.09457,40.823167],[-90.963123,40.921752],[-90.946692,41.097014],[-91.111001,41.239415],[-91.045277,41.414677],[-90.656414,41.463969],[-90.344229,41.589939],[-90.311367,41.743293],[-90.179921,41.809016],[-90.141582,42.000709],[-90.168967,42.126679],[-90.393521,42.225264],[-90.420906,42.329326],[-90.639984,42.510065]]]}}, -{"type":"Feature","id":"18","properties":{"name":"Indiana","density":181.7},"geometry":{"type":"Polygon","coordinates":[[[-85.990061,41.759724],[-84.807042,41.759724],[-84.807042,41.694001],[-84.801565,40.500028],[-84.817996,39.103408],[-84.894673,39.059592],[-84.812519,38.785745],[-84.987781,38.780268],[-85.173997,38.68716],[-85.431413,38.730976],[-85.42046,38.533806],[-85.590245,38.451652],[-85.655968,38.325682],[-85.83123,38.27639],[-85.924338,38.024451],[-86.039354,37.958727],[-86.263908,38.051835],[-86.302247,38.166851],[-86.521325,38.040881],[-86.504894,37.931343],[-86.729448,37.893004],[-86.795172,37.991589],[-87.047111,37.893004],[-87.129265,37.788942],[-87.381204,37.93682],[-87.512651,37.903958],[-87.600282,37.975158],[-87.682436,37.903958],[-87.934375,37.893004],[-88.027483,37.799896],[-88.060345,37.865619],[-88.000098,38.101128],[-87.923421,38.15042],[-87.950806,38.27639],[-87.83579,38.292821],[-87.655051,38.506421],[-87.62219,38.637868],[-87.49622,38.780268],[-87.512651,38.95553],[-87.63862,39.169131],[-87.529082,39.34987],[-87.523605,41.710431],[-87.42502,41.644708],[-87.118311,41.644708],[-86.822556,41.759724],[-85.990061,41.759724]]]}}, -{"type":"Feature","id":"19","properties":{"name":"Iowa","density":54.81},"geometry":{"type":"Polygon","coordinates":[[[-91.368417,43.501391],[-91.215062,43.501391],[-91.204109,43.353514],[-91.056231,43.254929],[-91.176724,43.134436],[-91.143862,42.909881],[-91.067185,42.75105],[-90.711184,42.636034],[-90.639984,42.510065],[-90.420906,42.329326],[-90.393521,42.225264],[-90.168967,42.126679],[-90.141582,42.000709],[-90.179921,41.809016],[-90.311367,41.743293],[-90.344229,41.589939],[-90.656414,41.463969],[-91.045277,41.414677],[-91.111001,41.239415],[-90.946692,41.097014],[-90.963123,40.921752],[-91.09457,40.823167],[-91.121954,40.669813],[-91.401278,40.560274],[-91.417709,40.379535],[-91.527248,40.412397],[-91.729895,40.615043],[-91.833957,40.609566],[-93.257961,40.582182],[-94.632673,40.571228],[-95.7664,40.587659],[-95.881416,40.719105],[-95.826646,40.976521],[-95.925231,41.201076],[-95.919754,41.453015],[-96.095016,41.540646],[-96.122401,41.67757],[-96.062155,41.798063],[-96.127878,41.973325],[-96.264801,42.039048],[-96.44554,42.488157],[-96.631756,42.707235],[-96.544125,42.855112],[-96.511264,43.052282],[-96.434587,43.123482],[-96.560556,43.222067],[-96.527695,43.397329],[-96.582464,43.479483],[-96.451017,43.501391],[-91.368417,43.501391]]]}}, -{"type":"Feature","id":"20","properties":{"name":"Kansas","density":35.09},"geometry":{"type":"Polygon","coordinates":[[[-101.90605,40.001626],[-95.306337,40.001626],[-95.207752,39.908518],[-94.884612,39.831841],[-95.109167,39.541563],[-94.983197,39.442978],[-94.824366,39.20747],[-94.610765,39.158177],[-94.616242,37.000263],[-100.087706,37.000263],[-102.042974,36.994786],[-102.053927,40.001626],[-101.90605,40.001626]]]}}, -{"type":"Feature","id":"21","properties":{"name":"Kentucky","density":110},"geometry":{"type":"Polygon","coordinates":[[[-83.903347,38.769315],[-83.678792,38.632391],[-83.519961,38.703591],[-83.142052,38.626914],[-83.032514,38.725499],[-82.890113,38.758361],[-82.846298,38.588575],[-82.731282,38.561191],[-82.594358,38.424267],[-82.621743,38.123036],[-82.50125,37.931343],[-82.342419,37.783465],[-82.293127,37.668449],[-82.101434,37.553434],[-81.969987,37.537003],[-82.353373,37.268633],[-82.720328,37.120755],[-82.720328,37.044078],[-82.868205,36.978355],[-82.879159,36.890724],[-83.070852,36.852385],[-83.136575,36.742847],[-83.673316,36.600446],[-83.689746,36.584015],[-84.544149,36.594969],[-85.289013,36.627831],[-85.486183,36.616877],[-86.592525,36.655216],[-87.852221,36.633308],[-88.071299,36.677123],[-88.054868,36.496384],[-89.298133,36.507338],[-89.418626,36.496384],[-89.363857,36.622354],[-89.215979,36.578538],[-89.133825,36.983832],[-89.183118,37.038601],[-89.029763,37.213863],[-88.914747,37.224817],[-88.547792,37.071463],[-88.421823,37.153617],[-88.514931,37.285064],[-88.476592,37.389126],[-88.065822,37.482234],[-88.15893,37.657496],[-88.027483,37.799896],[-87.934375,37.893004],[-87.682436,37.903958],[-87.600282,37.975158],[-87.512651,37.903958],[-87.381204,37.93682],[-87.129265,37.788942],[-87.047111,37.893004],[-86.795172,37.991589],[-86.729448,37.893004],[-86.504894,37.931343],[-86.521325,38.040881],[-86.302247,38.166851],[-86.263908,38.051835],[-86.039354,37.958727],[-85.924338,38.024451],[-85.83123,38.27639],[-85.655968,38.325682],[-85.590245,38.451652],[-85.42046,38.533806],[-85.431413,38.730976],[-85.173997,38.68716],[-84.987781,38.780268],[-84.812519,38.785745],[-84.894673,39.059592],[-84.817996,39.103408],[-84.43461,39.103408],[-84.231963,38.895284],[-84.215533,38.807653],[-83.903347,38.769315]]]}}, -{"type":"Feature","id":"22","properties":{"name":"Louisiana","density":105},"geometry":{"type":"Polygon","coordinates":[[[-93.608485,33.018527],[-91.16577,33.002096],[-91.072662,32.887081],[-91.143862,32.843265],[-91.154816,32.640618],[-91.006939,32.514649],[-90.985031,32.218894],[-91.105524,31.988862],[-91.341032,31.846462],[-91.401278,31.621907],[-91.499863,31.643815],[-91.516294,31.27686],[-91.636787,31.265906],[-91.565587,31.068736],[-91.636787,30.997536],[-89.747242,30.997536],[-89.845827,30.66892],[-89.681519,30.449842],[-89.643181,30.285534],[-89.522688,30.181472],[-89.818443,30.044549],[-89.84035,29.945964],[-89.599365,29.88024],[-89.495303,30.039072],[-89.287179,29.88024],[-89.30361,29.754271],[-89.424103,29.699501],[-89.648657,29.748794],[-89.621273,29.655686],[-89.69795,29.513285],[-89.506257,29.387316],[-89.199548,29.348977],[-89.09001,29.2011],[-89.002379,29.179192],[-89.16121,29.009407],[-89.336472,29.042268],[-89.484349,29.217531],[-89.851304,29.310638],[-89.851304,29.480424],[-90.032043,29.425654],[-90.021089,29.283254],[-90.103244,29.151807],[-90.23469,29.129899],[-90.333275,29.277777],[-90.563307,29.283254],[-90.645461,29.129899],[-90.798815,29.086084],[-90.963123,29.179192],[-91.09457,29.190146],[-91.220539,29.436608],[-91.445094,29.546147],[-91.532725,29.529716],[-91.620356,29.73784],[-91.883249,29.710455],[-91.888726,29.836425],[-92.146142,29.715932],[-92.113281,29.622824],[-92.31045,29.535193],[-92.617159,29.579009],[-92.97316,29.715932],[-93.2251,29.776178],[-93.767317,29.726886],[-93.838517,29.688547],[-93.926148,29.787132],[-93.690639,30.143133],[-93.767317,30.334826],[-93.696116,30.438888],[-93.728978,30.575812],[-93.630393,30.679874],[-93.526331,30.93729],[-93.542762,31.15089],[-93.816609,31.556184],[-93.822086,31.775262],[-94.041164,31.994339],[-94.041164,33.018527],[-93.608485,33.018527]]]}}, -{"type":"Feature","id":"23","properties":{"name":"Maine","density":43.04},"geometry":{"type":"Polygon","coordinates":[[[-70.703921,43.057759],[-70.824413,43.128959],[-70.807983,43.227544],[-70.966814,43.34256],[-71.032537,44.657025],[-71.08183,45.303304],[-70.649151,45.440228],[-70.720352,45.511428],[-70.556043,45.664782],[-70.386258,45.735983],[-70.41912,45.796229],[-70.260289,45.889337],[-70.309581,46.064599],[-70.210996,46.327492],[-70.057642,46.415123],[-69.997395,46.694447],[-69.225147,47.461219],[-69.044408,47.428357],[-69.033454,47.242141],[-68.902007,47.176418],[-68.578868,47.285957],[-68.376221,47.285957],[-68.233821,47.357157],[-67.954497,47.198326],[-67.790188,47.066879],[-67.779235,45.944106],[-67.801142,45.675736],[-67.456095,45.604536],[-67.505388,45.48952],[-67.417757,45.379982],[-67.488957,45.281397],[-67.346556,45.128042],[-67.16034,45.160904],[-66.979601,44.804903],[-67.187725,44.646072],[-67.308218,44.706318],[-67.406803,44.596779],[-67.549203,44.624164],[-67.565634,44.531056],[-67.75185,44.54201],[-68.047605,44.328409],[-68.118805,44.476286],[-68.222867,44.48724],[-68.173574,44.328409],[-68.403606,44.251732],[-68.458375,44.377701],[-68.567914,44.311978],[-68.82533,44.311978],[-68.830807,44.459856],[-68.984161,44.426994],[-68.956777,44.322932],[-69.099177,44.103854],[-69.071793,44.043608],[-69.258008,43.923115],[-69.444224,43.966931],[-69.553763,43.840961],[-69.707118,43.82453],[-69.833087,43.720469],[-69.986442,43.742376],[-70.030257,43.851915],[-70.254812,43.676653],[-70.194565,43.567114],[-70.358873,43.528776],[-70.369827,43.435668],[-70.556043,43.320652],[-70.703921,43.057759]]]}}, -{"type":"Feature","id":"24","properties":{"name":"Maryland","density":596.3},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.994645,37.95325],[-76.016553,37.95325],[-76.043938,37.95325],[-75.994645,37.95325]]],[[[-79.477979,39.722302],[-75.786521,39.722302],[-75.693413,38.462606],[-75.047134,38.451652],[-75.244304,38.029928],[-75.397659,38.013497],[-75.671506,37.95325],[-75.885106,37.909435],[-75.879629,38.073743],[-75.961783,38.139466],[-75.846768,38.210667],[-76.000122,38.374975],[-76.049415,38.303775],[-76.257538,38.320205],[-76.328738,38.500944],[-76.263015,38.500944],[-76.257538,38.736453],[-76.191815,38.829561],[-76.279446,39.147223],[-76.169907,39.333439],[-76.000122,39.366301],[-75.972737,39.557994],[-76.098707,39.536086],[-76.104184,39.437501],[-76.367077,39.311532],[-76.443754,39.196516],[-76.460185,38.906238],[-76.55877,38.769315],[-76.514954,38.539283],[-76.383508,38.380452],[-76.399939,38.259959],[-76.317785,38.139466],[-76.3616,38.057312],[-76.591632,38.216144],[-76.920248,38.292821],[-77.018833,38.446175],[-77.205049,38.358544],[-77.276249,38.479037],[-77.128372,38.632391],[-77.040741,38.791222],[-76.909294,38.895284],[-77.035264,38.993869],[-77.117418,38.933623],[-77.248864,39.026731],[-77.456988,39.076023],[-77.456988,39.223901],[-77.566527,39.306055],[-77.719881,39.322485],[-77.834897,39.601809],[-78.004682,39.601809],[-78.174467,39.694917],[-78.267575,39.61824],[-78.431884,39.623717],[-78.470222,39.514178],[-78.765977,39.585379],[-78.963147,39.437501],[-79.094593,39.470363],[-79.291763,39.300578],[-79.488933,39.20747],[-79.477979,39.722302]]]]}}, -{"type":"Feature","id":"25","properties":{"name":"Massachusetts","density":840.2},"geometry":{"type":"Polygon","coordinates":[[[-70.917521,42.887974],[-70.818936,42.871543],[-70.780598,42.696281],[-70.824413,42.55388],[-70.983245,42.422434],[-70.988722,42.269079],[-70.769644,42.247172],[-70.638197,42.08834],[-70.660105,41.962371],[-70.550566,41.929509],[-70.539613,41.814493],[-70.260289,41.715908],[-69.937149,41.809016],[-70.008349,41.672093],[-70.484843,41.5516],[-70.660105,41.546123],[-70.764167,41.639231],[-70.928475,41.611847],[-70.933952,41.540646],[-71.120168,41.496831],[-71.196845,41.67757],[-71.22423,41.710431],[-71.328292,41.781632],[-71.383061,42.01714],[-71.530939,42.01714],[-71.799309,42.006186],[-71.799309,42.022617],[-73.053528,42.039048],[-73.486206,42.050002],[-73.508114,42.08834],[-73.267129,42.745573],[-72.456542,42.729142],[-71.29543,42.696281],[-71.185891,42.789389],[-70.917521,42.887974]]]}}, -{"type":"Feature","id":"26","properties":{"name":"Michigan","density":173.9},"geometry":{"type":"MultiPolygon","coordinates":[[[[-83.454238,41.732339],[-84.807042,41.694001],[-84.807042,41.759724],[-85.990061,41.759724],[-86.822556,41.759724],[-86.619909,41.891171],[-86.482986,42.115725],[-86.357016,42.252649],[-86.263908,42.444341],[-86.209139,42.718189],[-86.231047,43.013943],[-86.526801,43.594499],[-86.433693,43.813577],[-86.499417,44.07647],[-86.269385,44.34484],[-86.220093,44.569394],[-86.252954,44.689887],[-86.088646,44.73918],[-86.066738,44.903488],[-85.809322,44.947303],[-85.612152,45.128042],[-85.628583,44.766564],[-85.524521,44.750133],[-85.393075,44.930872],[-85.387598,45.237581],[-85.305444,45.314258],[-85.031597,45.363551],[-85.119228,45.577151],[-84.938489,45.75789],[-84.713934,45.768844],[-84.461995,45.653829],[-84.215533,45.637398],[-84.09504,45.494997],[-83.908824,45.484043],[-83.596638,45.352597],[-83.4871,45.358074],[-83.317314,45.144473],[-83.454238,45.029457],[-83.322791,44.88158],[-83.273499,44.711795],[-83.333745,44.339363],[-83.536392,44.246255],[-83.585684,44.054562],[-83.82667,43.988839],[-83.958116,43.758807],[-83.908824,43.671176],[-83.667839,43.589022],[-83.481623,43.714992],[-83.262545,43.972408],[-82.917498,44.070993],[-82.747713,43.994316],[-82.643651,43.851915],[-82.539589,43.435668],[-82.523158,43.227544],[-82.413619,42.975605],[-82.517681,42.614127],[-82.681989,42.559357],[-82.687466,42.690804],[-82.797005,42.652465],[-82.922975,42.351234],[-83.125621,42.236218],[-83.185868,42.006186],[-83.437807,41.814493],[-83.454238,41.732339]]],[[[-85.508091,45.730506],[-85.49166,45.610013],[-85.623106,45.588105],[-85.568337,45.75789],[-85.508091,45.730506]]],[[[-87.589328,45.095181],[-87.742682,45.199243],[-87.649574,45.341643],[-87.885083,45.363551],[-87.791975,45.500474],[-87.781021,45.675736],[-87.989145,45.796229],[-88.10416,45.922199],[-88.531362,46.020784],[-88.662808,45.987922],[-89.09001,46.135799],[-90.119674,46.338446],[-90.229213,46.508231],[-90.415429,46.568478],[-90.026566,46.672539],[-89.851304,46.793032],[-89.413149,46.842325],[-89.128348,46.990202],[-88.996902,46.995679],[-88.887363,47.099741],[-88.575177,47.247618],[-88.416346,47.373588],[-88.180837,47.455742],[-87.956283,47.384542],[-88.350623,47.077833],[-88.443731,46.973771],[-88.438254,46.787555],[-88.246561,46.929956],[-87.901513,46.908048],[-87.633143,46.809463],[-87.392158,46.535616],[-87.260711,46.486323],[-87.008772,46.530139],[-86.948526,46.469893],[-86.696587,46.437031],[-86.159846,46.667063],[-85.880522,46.68897],[-85.508091,46.678016],[-85.256151,46.754694],[-85.064458,46.760171],[-85.02612,46.480847],[-84.82895,46.442508],[-84.63178,46.486323],[-84.549626,46.4206],[-84.418179,46.502754],[-84.127902,46.530139],[-84.122425,46.179615],[-83.990978,46.031737],[-83.793808,45.993399],[-83.7719,46.091984],[-83.580208,46.091984],[-83.476146,45.987922],[-83.563777,45.911245],[-84.111471,45.976968],[-84.374364,45.933153],[-84.659165,46.053645],[-84.741319,45.944106],[-84.70298,45.850998],[-84.82895,45.872906],[-85.015166,46.00983],[-85.338305,46.091984],[-85.502614,46.097461],[-85.661445,45.966014],[-85.924338,45.933153],[-86.209139,45.960537],[-86.324155,45.905768],[-86.351539,45.796229],[-86.663725,45.703121],[-86.647294,45.834568],[-86.784218,45.861952],[-86.838987,45.725029],[-87.069019,45.719552],[-87.17308,45.659305],[-87.326435,45.423797],[-87.611236,45.122565],[-87.589328,45.095181]]],[[[-88.805209,47.976051],[-89.057148,47.850082],[-89.188594,47.833651],[-89.177641,47.937713],[-88.547792,48.173221],[-88.668285,48.008913],[-88.805209,47.976051]]]]}}, -{"type":"Feature","id":"27","properties":{"name":"Minnesota","density":67.14},"geometry":{"type":"Polygon","coordinates":[[[-92.014696,46.705401],[-92.091373,46.749217],[-92.29402,46.667063],[-92.29402,46.075553],[-92.354266,46.015307],[-92.639067,45.933153],[-92.869098,45.719552],[-92.885529,45.577151],[-92.770513,45.566198],[-92.644544,45.440228],[-92.75956,45.286874],[-92.737652,45.117088],[-92.808852,44.750133],[-92.545959,44.569394],[-92.337835,44.552964],[-92.233773,44.443425],[-91.927065,44.333886],[-91.877772,44.202439],[-91.592971,44.032654],[-91.43414,43.994316],[-91.242447,43.775238],[-91.269832,43.616407],[-91.215062,43.501391],[-91.368417,43.501391],[-96.451017,43.501391],[-96.451017,45.297827],[-96.681049,45.412843],[-96.856311,45.604536],[-96.582464,45.818137],[-96.560556,45.933153],[-96.598895,46.332969],[-96.719387,46.437031],[-96.801542,46.656109],[-96.785111,46.924479],[-96.823449,46.968294],[-96.856311,47.609096],[-97.053481,47.948667],[-97.130158,48.140359],[-97.16302,48.545653],[-97.097296,48.682577],[-97.228743,49.000239],[-95.152983,49.000239],[-95.152983,49.383625],[-94.955813,49.372671],[-94.824366,49.295994],[-94.69292,48.775685],[-94.588858,48.715438],[-94.260241,48.699007],[-94.221903,48.649715],[-93.838517,48.627807],[-93.794701,48.518268],[-93.466085,48.545653],[-93.466085,48.589469],[-93.208669,48.644238],[-92.984114,48.62233],[-92.726698,48.540176],[-92.655498,48.436114],[-92.50762,48.447068],[-92.370697,48.222514],[-92.304974,48.315622],[-92.053034,48.359437],[-92.009219,48.266329],[-91.713464,48.200606],[-91.713464,48.112975],[-91.565587,48.041775],[-91.264355,48.080113],[-91.083616,48.178698],[-90.837154,48.238944],[-90.749522,48.091067],[-90.579737,48.123929],[-90.377091,48.091067],[-90.141582,48.112975],[-89.873212,47.987005],[-89.615796,48.008913],[-89.637704,47.954144],[-89.971797,47.828174],[-90.437337,47.729589],[-90.738569,47.625527],[-91.171247,47.368111],[-91.357463,47.20928],[-91.642264,47.028541],[-92.091373,46.787555],[-92.014696,46.705401]]]}}, -{"type":"Feature","id":"28","properties":{"name":"Mississippi","density":63.50},"geometry":{"type":"Polygon","coordinates":[[[-88.471115,34.995703],[-88.202745,34.995703],[-88.098683,34.891641],[-88.241084,33.796253],[-88.471115,31.895754],[-88.394438,30.367688],[-88.503977,30.323872],[-88.744962,30.34578],[-88.843547,30.411504],[-89.084533,30.367688],[-89.418626,30.252672],[-89.522688,30.181472],[-89.643181,30.285534],[-89.681519,30.449842],[-89.845827,30.66892],[-89.747242,30.997536],[-91.636787,30.997536],[-91.565587,31.068736],[-91.636787,31.265906],[-91.516294,31.27686],[-91.499863,31.643815],[-91.401278,31.621907],[-91.341032,31.846462],[-91.105524,31.988862],[-90.985031,32.218894],[-91.006939,32.514649],[-91.154816,32.640618],[-91.143862,32.843265],[-91.072662,32.887081],[-91.16577,33.002096],[-91.089093,33.13902],[-91.143862,33.347144],[-91.056231,33.429298],[-91.231493,33.560744],[-91.072662,33.867453],[-90.891923,34.026284],[-90.952169,34.135823],[-90.744046,34.300131],[-90.749522,34.365854],[-90.568783,34.420624],[-90.585214,34.617794],[-90.481152,34.661609],[-90.409952,34.831394],[-90.251121,34.908072],[-90.311367,34.995703],[-88.471115,34.995703]]]}}, -{"type":"Feature","id":"29","properties":{"name":"Missouri","density":87.26},"geometry":{"type":"Polygon","coordinates":[[[-91.833957,40.609566],[-91.729895,40.615043],[-91.527248,40.412397],[-91.417709,40.379535],[-91.50534,40.237135],[-91.494386,40.034488],[-91.368417,39.727779],[-91.061708,39.470363],[-90.727615,39.256762],[-90.661891,38.928146],[-90.585214,38.867899],[-90.470199,38.961007],[-90.251121,38.917192],[-90.10872,38.845992],[-90.207305,38.725499],[-90.179921,38.632391],[-90.349706,38.374975],[-90.355183,38.216144],[-90.059428,38.013497],[-89.949889,37.88205],[-89.84035,37.903958],[-89.517211,37.690357],[-89.517211,37.537003],[-89.435057,37.34531],[-89.517211,37.279587],[-89.292656,36.994786],[-89.133825,36.983832],[-89.215979,36.578538],[-89.363857,36.622354],[-89.418626,36.496384],[-89.484349,36.496384],[-89.539119,36.496384],[-89.533642,36.249922],[-89.730812,35.997983],[-90.377091,35.997983],[-90.218259,36.184199],[-90.064905,36.304691],[-90.152536,36.496384],[-94.473842,36.501861],[-94.616242,36.501861],[-94.616242,37.000263],[-94.610765,39.158177],[-94.824366,39.20747],[-94.983197,39.442978],[-95.109167,39.541563],[-94.884612,39.831841],[-95.207752,39.908518],[-95.306337,40.001626],[-95.552799,40.264519],[-95.7664,40.587659],[-94.632673,40.571228],[-93.257961,40.582182],[-91.833957,40.609566]]]}}, -{"type":"Feature","id":"30","properties":{"name":"Montana","density":6.858},"geometry":{"type":"Polygon","coordinates":[[[-104.047534,49.000239],[-104.042057,47.861036],[-104.047534,45.944106],[-104.042057,44.996596],[-104.058488,44.996596],[-105.91517,45.002073],[-109.080842,45.002073],[-111.05254,45.002073],[-111.047063,44.476286],[-111.227803,44.580348],[-111.386634,44.75561],[-111.616665,44.547487],[-111.819312,44.509148],[-111.868605,44.563917],[-112.104113,44.520102],[-112.241036,44.569394],[-112.471068,44.481763],[-112.783254,44.48724],[-112.887315,44.394132],[-113.002331,44.448902],[-113.133778,44.772041],[-113.341901,44.782995],[-113.456917,44.865149],[-113.45144,45.056842],[-113.571933,45.128042],[-113.736241,45.330689],[-113.834826,45.522382],[-113.807441,45.604536],[-113.98818,45.703121],[-114.086765,45.593582],[-114.333228,45.456659],[-114.546828,45.560721],[-114.497536,45.670259],[-114.568736,45.774321],[-114.387997,45.88386],[-114.492059,46.037214],[-114.464674,46.272723],[-114.322274,46.645155],[-114.612552,46.639678],[-114.623506,46.705401],[-114.886399,46.809463],[-114.930214,46.919002],[-115.302646,47.187372],[-115.324554,47.258572],[-115.527201,47.302388],[-115.718894,47.42288],[-115.724371,47.696727],[-116.04751,47.976051],[-116.04751,49.000239],[-111.50165,48.994762],[-109.453274,49.000239],[-104.047534,49.000239]]]}}, -{"type":"Feature","id":"31","properties":{"name":"Nebraska","density":23.97},"geometry":{"type":"Polygon","coordinates":[[[-103.324578,43.002989],[-101.626726,42.997512],[-98.499393,42.997512],[-98.466531,42.94822],[-97.951699,42.767481],[-97.831206,42.866066],[-97.688806,42.844158],[-97.217789,42.844158],[-96.692003,42.657942],[-96.626279,42.515542],[-96.44554,42.488157],[-96.264801,42.039048],[-96.127878,41.973325],[-96.062155,41.798063],[-96.122401,41.67757],[-96.095016,41.540646],[-95.919754,41.453015],[-95.925231,41.201076],[-95.826646,40.976521],[-95.881416,40.719105],[-95.7664,40.587659],[-95.552799,40.264519],[-95.306337,40.001626],[-101.90605,40.001626],[-102.053927,40.001626],[-102.053927,41.003906],[-104.053011,41.003906],[-104.053011,43.002989],[-103.324578,43.002989]]]}}, -{"type":"Feature","id":"32","properties":{"name":"Nevada","density":24.80},"geometry":{"type":"Polygon","coordinates":[[[-117.027882,42.000709],[-114.04295,41.995232],[-114.048427,37.000263],[-114.048427,36.195153],[-114.152489,36.025367],[-114.251074,36.01989],[-114.371566,36.140383],[-114.738521,36.102045],[-114.678275,35.516012],[-114.596121,35.324319],[-114.574213,35.138103],[-114.634459,35.00118],[-115.85034,35.970598],[-116.540435,36.501861],[-117.498899,37.21934],[-118.71478,38.101128],[-120.001861,38.999346],[-119.996384,40.264519],[-120.001861,41.995232],[-118.698349,41.989755],[-117.027882,42.000709]]]}}, -{"type":"Feature","id":"33","properties":{"name":"New Hampshire","density":147},"geometry":{"type":"Polygon","coordinates":[[[-71.08183,45.303304],[-71.032537,44.657025],[-70.966814,43.34256],[-70.807983,43.227544],[-70.824413,43.128959],[-70.703921,43.057759],[-70.818936,42.871543],[-70.917521,42.887974],[-71.185891,42.789389],[-71.29543,42.696281],[-72.456542,42.729142],[-72.544173,42.80582],[-72.533219,42.953697],[-72.445588,43.008466],[-72.456542,43.150867],[-72.379864,43.572591],[-72.204602,43.769761],[-72.116971,43.994316],[-72.02934,44.07647],[-72.034817,44.322932],[-71.700724,44.41604],[-71.536416,44.585825],[-71.629524,44.750133],[-71.4926,44.914442],[-71.503554,45.013027],[-71.361154,45.270443],[-71.131122,45.243058],[-71.08183,45.303304]]]}}, -{"type":"Feature","id":"34","properties":{"name":"New Jersey","density":1189 },"geometry":{"type":"Polygon","coordinates":[[[-74.236547,41.14083],[-73.902454,40.998429],[-74.022947,40.708151],[-74.187255,40.642428],[-74.274886,40.489074],[-74.001039,40.412397],[-73.979131,40.297381],[-74.099624,39.760641],[-74.411809,39.360824],[-74.614456,39.245808],[-74.795195,38.993869],[-74.888303,39.158177],[-75.178581,39.240331],[-75.534582,39.459409],[-75.55649,39.607286],[-75.561967,39.629194],[-75.507197,39.683964],[-75.414089,39.804456],[-75.145719,39.88661],[-75.129289,39.963288],[-74.82258,40.127596],[-74.773287,40.215227],[-75.058088,40.417874],[-75.069042,40.543843],[-75.195012,40.576705],[-75.205966,40.691721],[-75.052611,40.866983],[-75.134765,40.971045],[-74.882826,41.179168],[-74.828057,41.288707],[-74.69661,41.359907],[-74.236547,41.14083]]]}}, -{"type":"Feature","id":"35","properties":{"name":"New Mexico","density":17.16},"geometry":{"type":"Polygon","coordinates":[[[-107.421329,37.000263],[-106.868158,36.994786],[-104.337812,36.994786],[-103.001438,37.000263],[-103.001438,36.501861],[-103.039777,36.501861],[-103.045254,34.01533],[-103.067161,33.002096],[-103.067161,31.999816],[-106.616219,31.999816],[-106.643603,31.901231],[-106.528588,31.786216],[-108.210008,31.786216],[-108.210008,31.331629],[-109.04798,31.331629],[-109.042503,37.000263],[-107.421329,37.000263]]]}}, -{"type":"Feature","id":"36","properties":{"name":"New York","density":412.3},"geometry":{"type":"Polygon","coordinates":[[[-73.343806,45.013027],[-73.332852,44.804903],[-73.387622,44.618687],[-73.294514,44.437948],[-73.321898,44.246255],[-73.436914,44.043608],[-73.349283,43.769761],[-73.404052,43.687607],[-73.245221,43.523299],[-73.278083,42.833204],[-73.267129,42.745573],[-73.508114,42.08834],[-73.486206,42.050002],[-73.55193,41.294184],[-73.48073,41.21203],[-73.727192,41.102491],[-73.655992,40.987475],[-73.22879,40.905321],[-73.141159,40.965568],[-72.774204,40.965568],[-72.587988,40.998429],[-72.28128,41.157261],[-72.259372,41.042245],[-72.100541,40.992952],[-72.467496,40.845075],[-73.239744,40.625997],[-73.562884,40.582182],[-73.776484,40.593136],[-73.935316,40.543843],[-74.022947,40.708151],[-73.902454,40.998429],[-74.236547,41.14083],[-74.69661,41.359907],[-74.740426,41.431108],[-74.89378,41.436584],[-75.074519,41.60637],[-75.052611,41.754247],[-75.173104,41.869263],[-75.249781,41.863786],[-75.35932,42.000709],[-79.76278,42.000709],[-79.76278,42.252649],[-79.76278,42.269079],[-79.149363,42.55388],[-79.050778,42.690804],[-78.853608,42.783912],[-78.930285,42.953697],[-79.012439,42.986559],[-79.072686,43.260406],[-78.486653,43.375421],[-77.966344,43.369944],[-77.75822,43.34256],[-77.533665,43.233021],[-77.391265,43.276836],[-76.958587,43.271359],[-76.695693,43.34256],[-76.41637,43.523299],[-76.235631,43.528776],[-76.230154,43.802623],[-76.137046,43.961454],[-76.3616,44.070993],[-76.312308,44.196962],[-75.912491,44.366748],[-75.764614,44.514625],[-75.282643,44.848718],[-74.828057,45.018503],[-74.148916,44.991119],[-73.343806,45.013027]]]}}, -{"type":"Feature","id":"37","properties":{"name":"North Carolina","density":198.2},"geometry":{"type":"Polygon","coordinates":[[[-80.978661,36.562108],[-80.294043,36.545677],[-79.510841,36.5402],[-75.868676,36.551154],[-75.75366,36.151337],[-76.032984,36.189676],[-76.071322,36.140383],[-76.410893,36.080137],[-76.460185,36.025367],[-76.68474,36.008937],[-76.673786,35.937736],[-76.399939,35.987029],[-76.3616,35.943213],[-76.060368,35.992506],[-75.961783,35.899398],[-75.781044,35.937736],[-75.715321,35.696751],[-75.775568,35.581735],[-75.89606,35.570781],[-76.147999,35.324319],[-76.482093,35.313365],[-76.536862,35.14358],[-76.394462,34.973795],[-76.279446,34.940933],[-76.493047,34.661609],[-76.673786,34.694471],[-76.991448,34.667086],[-77.210526,34.60684],[-77.555573,34.415147],[-77.82942,34.163208],[-77.971821,33.845545],[-78.179944,33.916745],[-78.541422,33.851022],[-79.675149,34.80401],[-80.797922,34.820441],[-80.781491,34.935456],[-80.934845,35.105241],[-81.038907,35.044995],[-81.044384,35.149057],[-82.276696,35.198349],[-82.550543,35.160011],[-82.764143,35.066903],[-83.109191,35.00118],[-83.618546,34.984749],[-84.319594,34.990226],[-84.29221,35.225734],[-84.09504,35.247642],[-84.018363,35.41195],[-83.7719,35.559827],[-83.498053,35.565304],[-83.251591,35.718659],[-82.994175,35.773428],[-82.775097,35.997983],[-82.638174,36.063706],[-82.610789,35.965121],[-82.216449,36.156814],[-82.03571,36.118475],[-81.909741,36.304691],[-81.723525,36.353984],[-81.679709,36.589492],[-80.978661,36.562108]]]}}, -{"type":"Feature","id":"38","properties":{"name":"North Dakota","density":9.916},"geometry":{"type":"Polygon","coordinates":[[[-97.228743,49.000239],[-97.097296,48.682577],[-97.16302,48.545653],[-97.130158,48.140359],[-97.053481,47.948667],[-96.856311,47.609096],[-96.823449,46.968294],[-96.785111,46.924479],[-96.801542,46.656109],[-96.719387,46.437031],[-96.598895,46.332969],[-96.560556,45.933153],[-104.047534,45.944106],[-104.042057,47.861036],[-104.047534,49.000239],[-97.228743,49.000239]]]}}, -{"type":"Feature","id":"39","properties":{"name":"Ohio","density":281.9},"geometry":{"type":"Polygon","coordinates":[[[-80.518598,41.978802],[-80.518598,40.636951],[-80.666475,40.582182],[-80.595275,40.472643],[-80.600752,40.319289],[-80.737675,40.078303],[-80.830783,39.711348],[-81.219646,39.388209],[-81.345616,39.344393],[-81.455155,39.410117],[-81.57017,39.267716],[-81.685186,39.273193],[-81.811156,39.0815],[-81.783771,38.966484],[-81.887833,38.873376],[-82.03571,39.026731],[-82.221926,38.785745],[-82.172634,38.632391],[-82.293127,38.577622],[-82.331465,38.446175],[-82.594358,38.424267],[-82.731282,38.561191],[-82.846298,38.588575],[-82.890113,38.758361],[-83.032514,38.725499],[-83.142052,38.626914],[-83.519961,38.703591],[-83.678792,38.632391],[-83.903347,38.769315],[-84.215533,38.807653],[-84.231963,38.895284],[-84.43461,39.103408],[-84.817996,39.103408],[-84.801565,40.500028],[-84.807042,41.694001],[-83.454238,41.732339],[-83.065375,41.595416],[-82.933929,41.513262],[-82.835344,41.589939],[-82.616266,41.431108],[-82.479343,41.381815],[-82.013803,41.513262],[-81.739956,41.485877],[-81.444201,41.672093],[-81.011523,41.852832],[-80.518598,41.978802],[-80.518598,41.978802]]]}}, -{"type":"Feature","id":"40","properties":{"name":"Oklahoma","density":55.22},"geometry":{"type":"Polygon","coordinates":[[[-100.087706,37.000263],[-94.616242,37.000263],[-94.616242,36.501861],[-94.430026,35.395519],[-94.484796,33.637421],[-94.868182,33.74696],[-94.966767,33.861976],[-95.224183,33.960561],[-95.289906,33.87293],[-95.547322,33.878407],[-95.602092,33.933176],[-95.8376,33.834591],[-95.936185,33.889361],[-96.149786,33.840068],[-96.346956,33.686714],[-96.423633,33.774345],[-96.631756,33.845545],[-96.850834,33.845545],[-96.922034,33.960561],[-97.173974,33.736006],[-97.256128,33.861976],[-97.371143,33.823637],[-97.458774,33.905791],[-97.694283,33.982469],[-97.869545,33.851022],[-97.946222,33.987946],[-98.088623,34.004376],[-98.170777,34.113915],[-98.36247,34.157731],[-98.488439,34.064623],[-98.570593,34.146777],[-98.767763,34.135823],[-98.986841,34.223454],[-99.189488,34.2125],[-99.260688,34.404193],[-99.57835,34.415147],[-99.698843,34.382285],[-99.923398,34.573978],[-100.000075,34.563024],[-100.000075,36.501861],[-101.812942,36.501861],[-103.001438,36.501861],[-103.001438,37.000263],[-102.042974,36.994786],[-100.087706,37.000263]]]}}, -{"type":"Feature","id":"41","properties":{"name":"Oregon","density":40.33},"geometry":{"type":"Polygon","coordinates":[[[-123.211348,46.174138],[-123.11824,46.185092],[-122.904639,46.08103],[-122.811531,45.960537],[-122.762239,45.659305],[-122.247407,45.549767],[-121.809251,45.708598],[-121.535404,45.725029],[-121.217742,45.670259],[-121.18488,45.604536],[-120.637186,45.746937],[-120.505739,45.697644],[-120.209985,45.725029],[-119.963522,45.823614],[-119.525367,45.911245],[-119.125551,45.933153],[-118.988627,45.998876],[-116.918344,45.993399],[-116.78142,45.823614],[-116.545912,45.752413],[-116.463758,45.61549],[-116.671881,45.319735],[-116.732128,45.144473],[-116.847143,45.02398],[-116.830713,44.930872],[-116.934774,44.782995],[-117.038836,44.750133],[-117.241483,44.394132],[-117.170283,44.257209],[-116.97859,44.240778],[-116.896436,44.158624],[-117.027882,43.830007],[-117.027882,42.000709],[-118.698349,41.989755],[-120.001861,41.995232],[-121.037003,41.995232],[-122.378853,42.011663],[-123.233256,42.006186],[-124.213628,42.000709],[-124.356029,42.115725],[-124.432706,42.438865],[-124.416275,42.663419],[-124.553198,42.838681],[-124.454613,43.002989],[-124.383413,43.271359],[-124.235536,43.55616],[-124.169813,43.8081],[-124.060274,44.657025],[-124.076705,44.772041],[-123.97812,45.144473],[-123.939781,45.659305],[-123.994551,45.944106],[-123.945258,46.113892],[-123.545441,46.261769],[-123.370179,46.146753],[-123.211348,46.174138]]]}}, -{"type":"Feature","id":"42","properties":{"name":"Pennsylvania","density":284.3},"geometry":{"type":"Polygon","coordinates":[[[-79.76278,42.252649],[-79.76278,42.000709],[-75.35932,42.000709],[-75.249781,41.863786],[-75.173104,41.869263],[-75.052611,41.754247],[-75.074519,41.60637],[-74.89378,41.436584],[-74.740426,41.431108],[-74.69661,41.359907],[-74.828057,41.288707],[-74.882826,41.179168],[-75.134765,40.971045],[-75.052611,40.866983],[-75.205966,40.691721],[-75.195012,40.576705],[-75.069042,40.543843],[-75.058088,40.417874],[-74.773287,40.215227],[-74.82258,40.127596],[-75.129289,39.963288],[-75.145719,39.88661],[-75.414089,39.804456],[-75.616736,39.831841],[-75.786521,39.722302],[-79.477979,39.722302],[-80.518598,39.722302],[-80.518598,40.636951],[-80.518598,41.978802],[-80.518598,41.978802],[-80.332382,42.033571],[-79.76278,42.269079],[-79.76278,42.252649]]]}}, -{"type":"Feature","id":"44","properties":{"name":"Rhode Island","density":1006 },"geometry":{"type":"MultiPolygon","coordinates":[[[[-71.196845,41.67757],[-71.120168,41.496831],[-71.317338,41.474923],[-71.196845,41.67757]]],[[[-71.530939,42.01714],[-71.383061,42.01714],[-71.328292,41.781632],[-71.22423,41.710431],[-71.344723,41.726862],[-71.448785,41.578985],[-71.481646,41.370861],[-71.859555,41.321569],[-71.799309,41.414677],[-71.799309,42.006186],[-71.530939,42.01714]]]]}}, -{"type":"Feature","id":"45","properties":{"name":"South Carolina","density":155.4},"geometry":{"type":"Polygon","coordinates":[[[-82.764143,35.066903],[-82.550543,35.160011],[-82.276696,35.198349],[-81.044384,35.149057],[-81.038907,35.044995],[-80.934845,35.105241],[-80.781491,34.935456],[-80.797922,34.820441],[-79.675149,34.80401],[-78.541422,33.851022],[-78.716684,33.80173],[-78.935762,33.637421],[-79.149363,33.380005],[-79.187701,33.171881],[-79.357487,33.007573],[-79.582041,33.007573],[-79.631334,32.887081],[-79.866842,32.755634],[-79.998289,32.613234],[-80.206412,32.552987],[-80.430967,32.399633],[-80.452875,32.328433],[-80.660998,32.246279],[-80.885553,32.032678],[-81.115584,32.120309],[-81.121061,32.290094],[-81.279893,32.558464],[-81.416816,32.629664],[-81.42777,32.843265],[-81.493493,33.007573],[-81.761863,33.160928],[-81.937125,33.347144],[-81.926172,33.462159],[-82.194542,33.631944],[-82.325988,33.81816],[-82.55602,33.94413],[-82.714851,34.152254],[-82.747713,34.26727],[-82.901067,34.486347],[-83.005129,34.469916],[-83.339222,34.683517],[-83.322791,34.787579],[-83.109191,35.00118],[-82.764143,35.066903]]]}}, -{"type":"Feature","id":"46","properties":{"name":"South Dakota","density":98.07},"geometry":{"type":"Polygon","coordinates":[[[-104.047534,45.944106],[-96.560556,45.933153],[-96.582464,45.818137],[-96.856311,45.604536],[-96.681049,45.412843],[-96.451017,45.297827],[-96.451017,43.501391],[-96.582464,43.479483],[-96.527695,43.397329],[-96.560556,43.222067],[-96.434587,43.123482],[-96.511264,43.052282],[-96.544125,42.855112],[-96.631756,42.707235],[-96.44554,42.488157],[-96.626279,42.515542],[-96.692003,42.657942],[-97.217789,42.844158],[-97.688806,42.844158],[-97.831206,42.866066],[-97.951699,42.767481],[-98.466531,42.94822],[-98.499393,42.997512],[-101.626726,42.997512],[-103.324578,43.002989],[-104.053011,43.002989],[-104.058488,44.996596],[-104.042057,44.996596],[-104.047534,45.944106]]]}}, -{"type":"Feature","id":"47","properties":{"name":"Tennessee","density":88.08},"geometry":{"type":"Polygon","coordinates":[[[-88.054868,36.496384],[-88.071299,36.677123],[-87.852221,36.633308],[-86.592525,36.655216],[-85.486183,36.616877],[-85.289013,36.627831],[-84.544149,36.594969],[-83.689746,36.584015],[-83.673316,36.600446],[-81.679709,36.589492],[-81.723525,36.353984],[-81.909741,36.304691],[-82.03571,36.118475],[-82.216449,36.156814],[-82.610789,35.965121],[-82.638174,36.063706],[-82.775097,35.997983],[-82.994175,35.773428],[-83.251591,35.718659],[-83.498053,35.565304],[-83.7719,35.559827],[-84.018363,35.41195],[-84.09504,35.247642],[-84.29221,35.225734],[-84.319594,34.990226],[-85.606675,34.984749],[-87.359296,35.00118],[-88.202745,34.995703],[-88.471115,34.995703],[-90.311367,34.995703],[-90.212782,35.023087],[-90.114197,35.198349],[-90.130628,35.439335],[-89.944412,35.603643],[-89.911551,35.756997],[-89.763673,35.811767],[-89.730812,35.997983],[-89.533642,36.249922],[-89.539119,36.496384],[-89.484349,36.496384],[-89.418626,36.496384],[-89.298133,36.507338],[-88.054868,36.496384]]]}}, -{"type":"Feature","id":"48","properties":{"name":"Texas","density":98.07},"geometry":{"type":"Polygon","coordinates":[[[-101.812942,36.501861],[-100.000075,36.501861],[-100.000075,34.563024],[-99.923398,34.573978],[-99.698843,34.382285],[-99.57835,34.415147],[-99.260688,34.404193],[-99.189488,34.2125],[-98.986841,34.223454],[-98.767763,34.135823],[-98.570593,34.146777],[-98.488439,34.064623],[-98.36247,34.157731],[-98.170777,34.113915],[-98.088623,34.004376],[-97.946222,33.987946],[-97.869545,33.851022],[-97.694283,33.982469],[-97.458774,33.905791],[-97.371143,33.823637],[-97.256128,33.861976],[-97.173974,33.736006],[-96.922034,33.960561],[-96.850834,33.845545],[-96.631756,33.845545],[-96.423633,33.774345],[-96.346956,33.686714],[-96.149786,33.840068],[-95.936185,33.889361],[-95.8376,33.834591],[-95.602092,33.933176],[-95.547322,33.878407],[-95.289906,33.87293],[-95.224183,33.960561],[-94.966767,33.861976],[-94.868182,33.74696],[-94.484796,33.637421],[-94.380734,33.544313],[-94.183564,33.593606],[-94.041164,33.54979],[-94.041164,33.018527],[-94.041164,31.994339],[-93.822086,31.775262],[-93.816609,31.556184],[-93.542762,31.15089],[-93.526331,30.93729],[-93.630393,30.679874],[-93.728978,30.575812],[-93.696116,30.438888],[-93.767317,30.334826],[-93.690639,30.143133],[-93.926148,29.787132],[-93.838517,29.688547],[-94.002825,29.68307],[-94.523134,29.546147],[-94.70935,29.622824],[-94.742212,29.787132],[-94.873659,29.672117],[-94.966767,29.699501],[-95.016059,29.557101],[-94.911997,29.496854],[-94.895566,29.310638],[-95.081782,29.113469],[-95.383014,28.867006],[-95.985477,28.604113],[-96.045724,28.647929],[-96.226463,28.582205],[-96.23194,28.642452],[-96.478402,28.598636],[-96.593418,28.724606],[-96.664618,28.697221],[-96.401725,28.439805],[-96.593418,28.357651],[-96.774157,28.406943],[-96.801542,28.226204],[-97.026096,28.039988],[-97.256128,27.694941],[-97.404005,27.333463],[-97.513544,27.360848],[-97.540929,27.229401],[-97.425913,27.262263],[-97.480682,26.99937],[-97.557359,26.988416],[-97.562836,26.840538],[-97.469728,26.758384],[-97.442344,26.457153],[-97.332805,26.353091],[-97.30542,26.161398],[-97.217789,25.991613],[-97.524498,25.887551],[-97.650467,26.018997],[-97.885976,26.06829],[-98.198161,26.057336],[-98.466531,26.221644],[-98.669178,26.238075],[-98.822533,26.369522],[-99.030656,26.413337],[-99.173057,26.539307],[-99.266165,26.840538],[-99.446904,27.021277],[-99.424996,27.174632],[-99.50715,27.33894],[-99.479765,27.48134],[-99.605735,27.640172],[-99.709797,27.656603],[-99.879582,27.799003],[-99.934351,27.979742],[-100.082229,28.14405],[-100.29583,28.280974],[-100.399891,28.582205],[-100.498476,28.66436],[-100.629923,28.905345],[-100.673738,29.102515],[-100.799708,29.244915],[-101.013309,29.370885],[-101.062601,29.458516],[-101.259771,29.535193],[-101.413125,29.754271],[-101.851281,29.803563],[-102.114174,29.792609],[-102.338728,29.869286],[-102.388021,29.765225],[-102.629006,29.732363],[-102.809745,29.524239],[-102.919284,29.190146],[-102.97953,29.184669],[-103.116454,28.987499],[-103.280762,28.982022],[-103.527224,29.135376],[-104.146119,29.381839],[-104.266611,29.513285],[-104.507597,29.639255],[-104.677382,29.924056],[-104.688336,30.181472],[-104.858121,30.389596],[-104.896459,30.570335],[-105.005998,30.685351],[-105.394861,30.855136],[-105.602985,31.085167],[-105.77277,31.167321],[-105.953509,31.364491],[-106.205448,31.468553],[-106.38071,31.731446],[-106.528588,31.786216],[-106.643603,31.901231],[-106.616219,31.999816],[-103.067161,31.999816],[-103.067161,33.002096],[-103.045254,34.01533],[-103.039777,36.501861],[-103.001438,36.501861],[-101.812942,36.501861]]]}}, -{"type":"Feature","id":"49","properties":{"name":"Utah","density":34.30},"geometry":{"type":"Polygon","coordinates":[[[-112.164359,41.995232],[-111.047063,42.000709],[-111.047063,40.998429],[-109.04798,40.998429],[-109.053457,39.125316],[-109.058934,38.27639],[-109.042503,38.166851],[-109.042503,37.000263],[-110.499369,37.00574],[-114.048427,37.000263],[-114.04295,41.995232],[-112.164359,41.995232]]]}}, -{"type":"Feature","id":"50","properties":{"name":"Vermont","density":67.73},"geometry":{"type":"Polygon","coordinates":[[[-71.503554,45.013027],[-71.4926,44.914442],[-71.629524,44.750133],[-71.536416,44.585825],[-71.700724,44.41604],[-72.034817,44.322932],[-72.02934,44.07647],[-72.116971,43.994316],[-72.204602,43.769761],[-72.379864,43.572591],[-72.456542,43.150867],[-72.445588,43.008466],[-72.533219,42.953697],[-72.544173,42.80582],[-72.456542,42.729142],[-73.267129,42.745573],[-73.278083,42.833204],[-73.245221,43.523299],[-73.404052,43.687607],[-73.349283,43.769761],[-73.436914,44.043608],[-73.321898,44.246255],[-73.294514,44.437948],[-73.387622,44.618687],[-73.332852,44.804903],[-73.343806,45.013027],[-72.308664,45.002073],[-71.503554,45.013027]]]}}, -{"type":"Feature","id":"51","properties":{"name":"Virginia","density":204.5},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.397659,38.013497],[-75.244304,38.029928],[-75.375751,37.860142],[-75.512674,37.799896],[-75.594828,37.569865],[-75.802952,37.197433],[-75.972737,37.120755],[-76.027507,37.257679],[-75.939876,37.564388],[-75.671506,37.95325],[-75.397659,38.013497]]],[[[-76.016553,37.95325],[-75.994645,37.95325],[-76.043938,37.95325],[-76.016553,37.95325]]],[[[-78.349729,39.464886],[-77.82942,39.130793],[-77.719881,39.322485],[-77.566527,39.306055],[-77.456988,39.223901],[-77.456988,39.076023],[-77.248864,39.026731],[-77.117418,38.933623],[-77.040741,38.791222],[-77.128372,38.632391],[-77.248864,38.588575],[-77.325542,38.446175],[-77.281726,38.342113],[-77.013356,38.374975],[-76.964064,38.216144],[-76.613539,38.15042],[-76.514954,38.024451],[-76.235631,37.887527],[-76.3616,37.608203],[-76.246584,37.389126],[-76.383508,37.285064],[-76.399939,37.159094],[-76.273969,37.082417],[-76.410893,36.961924],[-76.619016,37.120755],[-76.668309,37.065986],[-76.48757,36.95097],[-75.994645,36.923586],[-75.868676,36.551154],[-79.510841,36.5402],[-80.294043,36.545677],[-80.978661,36.562108],[-81.679709,36.589492],[-83.673316,36.600446],[-83.136575,36.742847],[-83.070852,36.852385],[-82.879159,36.890724],[-82.868205,36.978355],[-82.720328,37.044078],[-82.720328,37.120755],[-82.353373,37.268633],[-81.969987,37.537003],[-81.986418,37.454849],[-81.849494,37.285064],[-81.679709,37.20291],[-81.55374,37.208387],[-81.362047,37.339833],[-81.225123,37.235771],[-80.967707,37.290541],[-80.513121,37.482234],[-80.474782,37.421987],[-80.29952,37.509618],[-80.294043,37.690357],[-80.184505,37.849189],[-79.998289,37.997066],[-79.921611,38.177805],[-79.724442,38.364021],[-79.647764,38.594052],[-79.477979,38.457129],[-79.313671,38.413313],[-79.209609,38.495467],[-78.996008,38.851469],[-78.870039,38.763838],[-78.404499,39.169131],[-78.349729,39.464886]]]]}}, -{"type":"Feature","id":"53","properties":{"name":"Washington","density":102.6},"geometry":{"type":"MultiPolygon","coordinates":[[[[-117.033359,49.000239],[-117.044313,47.762451],[-117.038836,46.426077],[-117.055267,46.343923],[-116.92382,46.168661],[-116.918344,45.993399],[-118.988627,45.998876],[-119.125551,45.933153],[-119.525367,45.911245],[-119.963522,45.823614],[-120.209985,45.725029],[-120.505739,45.697644],[-120.637186,45.746937],[-121.18488,45.604536],[-121.217742,45.670259],[-121.535404,45.725029],[-121.809251,45.708598],[-122.247407,45.549767],[-122.762239,45.659305],[-122.811531,45.960537],[-122.904639,46.08103],[-123.11824,46.185092],[-123.211348,46.174138],[-123.370179,46.146753],[-123.545441,46.261769],[-123.72618,46.300108],[-123.874058,46.239861],[-124.065751,46.327492],[-124.027412,46.464416],[-123.895966,46.535616],[-124.098612,46.74374],[-124.235536,47.285957],[-124.31769,47.357157],[-124.427229,47.740543],[-124.624399,47.88842],[-124.706553,48.184175],[-124.597014,48.381345],[-124.394367,48.288237],[-123.983597,48.162267],[-123.704273,48.167744],[-123.424949,48.118452],[-123.162056,48.167744],[-123.036086,48.080113],[-122.800578,48.08559],[-122.636269,47.866512],[-122.515777,47.882943],[-122.493869,47.587189],[-122.422669,47.318818],[-122.324084,47.346203],[-122.422669,47.576235],[-122.395284,47.800789],[-122.230976,48.030821],[-122.362422,48.123929],[-122.373376,48.288237],[-122.471961,48.468976],[-122.422669,48.600422],[-122.488392,48.753777],[-122.647223,48.775685],[-122.795101,48.8907],[-122.756762,49.000239],[-117.033359,49.000239]]],[[[-122.718423,48.310145],[-122.586977,48.35396],[-122.608885,48.151313],[-122.767716,48.227991],[-122.718423,48.310145]]],[[[-123.025132,48.583992],[-122.915593,48.715438],[-122.767716,48.556607],[-122.811531,48.419683],[-123.041563,48.458022],[-123.025132,48.583992]]]]}}, -{"type":"Feature","id":"54","properties":{"name":"West Virginia","density":77.06},"geometry":{"type":"Polygon","coordinates":[[[-80.518598,40.636951],[-80.518598,39.722302],[-79.477979,39.722302],[-79.488933,39.20747],[-79.291763,39.300578],[-79.094593,39.470363],[-78.963147,39.437501],[-78.765977,39.585379],[-78.470222,39.514178],[-78.431884,39.623717],[-78.267575,39.61824],[-78.174467,39.694917],[-78.004682,39.601809],[-77.834897,39.601809],[-77.719881,39.322485],[-77.82942,39.130793],[-78.349729,39.464886],[-78.404499,39.169131],[-78.870039,38.763838],[-78.996008,38.851469],[-79.209609,38.495467],[-79.313671,38.413313],[-79.477979,38.457129],[-79.647764,38.594052],[-79.724442,38.364021],[-79.921611,38.177805],[-79.998289,37.997066],[-80.184505,37.849189],[-80.294043,37.690357],[-80.29952,37.509618],[-80.474782,37.421987],[-80.513121,37.482234],[-80.967707,37.290541],[-81.225123,37.235771],[-81.362047,37.339833],[-81.55374,37.208387],[-81.679709,37.20291],[-81.849494,37.285064],[-81.986418,37.454849],[-81.969987,37.537003],[-82.101434,37.553434],[-82.293127,37.668449],[-82.342419,37.783465],[-82.50125,37.931343],[-82.621743,38.123036],[-82.594358,38.424267],[-82.331465,38.446175],[-82.293127,38.577622],[-82.172634,38.632391],[-82.221926,38.785745],[-82.03571,39.026731],[-81.887833,38.873376],[-81.783771,38.966484],[-81.811156,39.0815],[-81.685186,39.273193],[-81.57017,39.267716],[-81.455155,39.410117],[-81.345616,39.344393],[-81.219646,39.388209],[-80.830783,39.711348],[-80.737675,40.078303],[-80.600752,40.319289],[-80.595275,40.472643],[-80.666475,40.582182],[-80.518598,40.636951]]]}}, -{"type":"Feature","id":"55","properties":{"name":"Wisconsin","density":105.2},"geometry":{"type":"Polygon","coordinates":[[[-90.415429,46.568478],[-90.229213,46.508231],[-90.119674,46.338446],[-89.09001,46.135799],[-88.662808,45.987922],[-88.531362,46.020784],[-88.10416,45.922199],[-87.989145,45.796229],[-87.781021,45.675736],[-87.791975,45.500474],[-87.885083,45.363551],[-87.649574,45.341643],[-87.742682,45.199243],[-87.589328,45.095181],[-87.627666,44.974688],[-87.819359,44.95278],[-87.983668,44.722749],[-88.043914,44.563917],[-87.928898,44.536533],[-87.775544,44.640595],[-87.611236,44.837764],[-87.403112,44.914442],[-87.238804,45.166381],[-87.03068,45.22115],[-87.047111,45.089704],[-87.189511,44.969211],[-87.468835,44.552964],[-87.545512,44.322932],[-87.540035,44.158624],[-87.644097,44.103854],[-87.737205,43.8793],[-87.704344,43.687607],[-87.791975,43.561637],[-87.912467,43.249452],[-87.885083,43.002989],[-87.76459,42.783912],[-87.802929,42.493634],[-88.788778,42.493634],[-90.639984,42.510065],[-90.711184,42.636034],[-91.067185,42.75105],[-91.143862,42.909881],[-91.176724,43.134436],[-91.056231,43.254929],[-91.204109,43.353514],[-91.215062,43.501391],[-91.269832,43.616407],[-91.242447,43.775238],[-91.43414,43.994316],[-91.592971,44.032654],[-91.877772,44.202439],[-91.927065,44.333886],[-92.233773,44.443425],[-92.337835,44.552964],[-92.545959,44.569394],[-92.808852,44.750133],[-92.737652,45.117088],[-92.75956,45.286874],[-92.644544,45.440228],[-92.770513,45.566198],[-92.885529,45.577151],[-92.869098,45.719552],[-92.639067,45.933153],[-92.354266,46.015307],[-92.29402,46.075553],[-92.29402,46.667063],[-92.091373,46.749217],[-92.014696,46.705401],[-91.790141,46.694447],[-91.09457,46.864232],[-90.837154,46.95734],[-90.749522,46.88614],[-90.886446,46.754694],[-90.55783,46.584908],[-90.415429,46.568478]]]}}, -{"type":"Feature","id":"56","properties":{"name":"Wyoming","density":5.851},"geometry":{"type":"Polygon","coordinates":[[[-109.080842,45.002073],[-105.91517,45.002073],[-104.058488,44.996596],[-104.053011,43.002989],[-104.053011,41.003906],[-105.728954,40.998429],[-107.919731,41.003906],[-109.04798,40.998429],[-111.047063,40.998429],[-111.047063,42.000709],[-111.047063,44.476286],[-111.05254,45.002073],[-109.080842,45.002073]]]}}, -{"type":"Feature","id":"72","properties":{"name":"Puerto Rico","density":1082 },"geometry":{"type":"Polygon","coordinates":[[[-66.448338,17.984326],[-66.771478,18.006234],[-66.924832,17.929556],[-66.985078,17.973372],[-67.209633,17.956941],[-67.154863,18.19245],[-67.269879,18.362235],[-67.094617,18.515589],[-66.957694,18.488204],[-66.409999,18.488204],[-65.840398,18.433435],[-65.632274,18.367712],[-65.626797,18.203403],[-65.730859,18.186973],[-65.834921,18.017187],[-66.234737,17.929556],[-66.448338,17.984326]]]}} -]}; diff --git a/src/main/resources/static/assets/js/pages/listjs.init.js b/src/main/resources/static/assets/js/pages/listjs.init.js deleted file mode 100644 index c79ab34..0000000 --- a/src/main/resources/static/assets/js/pages/listjs.init.js +++ /dev/null @@ -1,458 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: list Js File -*/ - -var checkAll = document.getElementById("checkAll"); -if (checkAll) { - checkAll.onclick = function () { - var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); - if (checkAll.checked == true) { - Array.from(checkboxes).forEach(function (checkbox) { - checkbox.checked = true; - checkbox.closest("tr").classList.add("table-active"); - }); - } else { - Array.from(checkboxes).forEach(function (checkbox) { - checkbox.checked = false; - checkbox.closest("tr").classList.remove("table-active"); - }); - } - }; -} - -var perPage = 8; -var editlist = false; - -//Table -var options = { - valueNames: [ - "id", - "customer_name", - "email", - "date", - "phone", - "status", - ], - page: perPage, - pagination: true, - plugins: [ - ListPagination({ - left: 2, - right: 2 - }) - ] -}; - -// Init list -if (document.getElementById("customerList")) - var customerList = new List("customerList", options).on("updated", function (list) { - list.matchingItems.length == 0 ? - (document.getElementsByClassName("noresult")[0].style.display = "block") : - (document.getElementsByClassName("noresult")[0].style.display = "none"); - var isFirst = list.i == 1; - var isLast = list.i > list.matchingItems.length - list.page; - // make the Prev and Nex buttons disabled on first and last pages accordingly - (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; - (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; - if (isFirst) { - document.querySelector(".pagination-prev").classList.add("disabled"); - } - if (isLast) { - document.querySelector(".pagination-next").classList.add("disabled"); - } - if (list.matchingItems.length <= perPage) { - document.querySelector(".pagination-wrap").style.display = "none"; - } else { - document.querySelector(".pagination-wrap").style.display = "flex"; - } - - if (list.matchingItems.length == perPage) { - document.querySelector(".pagination.listjs-pagination").firstElementChild.children[0].click() - } - - if (list.matchingItems.length > 0) { - document.getElementsByClassName("noresult")[0].style.display = "none"; - } else { - document.getElementsByClassName("noresult")[0].style.display = "block"; - } - }); - -const xhttp = new XMLHttpRequest(); -xhttp.onload = function () { - var json_records = JSON.parse(this.responseText); - Array.from(json_records).forEach(raw => { - customerList.add({ - id: '#VZ'+raw.id+"", - customer_name: raw.customer_name, - email: raw.email, - date: raw.date, - phone: raw.phone, - status: isStatus(raw.status) - }); - customerList.sort('id', { order: "desc" }); - refreshCallbacks(); - }); - customerList.remove("id", '#VZ2101'); -} -xhttp.open("GET", "assets/json/table-customer-list.json"); -xhttp.send(); - -isCount = new DOMParser().parseFromString( - customerList.items.slice(-1)[0]._values.id, - "text/html" -); - -var isValue = isCount.body.firstElementChild.innerHTML; - -var idField = document.getElementById("id-field"), - customerNameField = document.getElementById("customername-field"), - emailField = document.getElementById("email-field"), - dateField = document.getElementById("date-field"), - phoneField = document.getElementById("phone-field"), - statusField = document.getElementById("status-field"), - addBtn = document.getElementById("add-btn"), - editBtn = document.getElementById("edit-btn"), - removeBtns = document.getElementsByClassName("remove-item-btn"), - editBtns = document.getElementsByClassName("edit-item-btn"); -refreshCallbacks(); -//filterContact("All"); - -function filterContact(isValue) { - var values_status = isValue; - customerList.filter(function (data) { - var statusFilter = false; - matchData = new DOMParser().parseFromString( - data.values().status, - "text/html" - ); - var status = matchData.body.firstElementChild.innerHTML; - if (status == "All" || values_status == "All") { - statusFilter = true; - } else { - statusFilter = status == values_status; - } - return statusFilter; - }); - - customerList.update(); -} - -function updateList() { - var values_status = document.querySelector("input[name=status]:checked").value; - data = userList.filter(function (item) { - var statusFilter = false; - - if (values_status == "All") { - statusFilter = true; - } else { - statusFilter = item.values().sts == values_status; - console.log(statusFilter, "statusFilter"); - } - return statusFilter; - }); - userList.update(); -} - -if (document.getElementById("showModal")) { - document.getElementById("showModal").addEventListener("show.bs.modal", function (e) { - if (e.relatedTarget.classList.contains("edit-item-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Edit Customer"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Update"; - } else if (e.relatedTarget.classList.contains("add-btn")) { - document.getElementById("exampleModalLabel").innerHTML = "Add Customer"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; - document.getElementById("add-btn").innerHTML = "Add Customer"; - } else { - document.getElementById("exampleModalLabel").innerHTML = "List Customer"; - document.getElementById("showModal").querySelector(".modal-footer").style.display = "none"; - } - }); - ischeckboxcheck(); - - document.getElementById("showModal").addEventListener("hidden.bs.modal", function () { - clearFields(); - }); -} -document.querySelector("#customerList").addEventListener("click", function () { - ischeckboxcheck(); -}); - -var table = document.getElementById("customerTable"); -// save all tr -var tr = table.getElementsByTagName("tr"); -var trlist = table.querySelectorAll(".list tr"); - -var count = 11; - -var forms = document.querySelectorAll('.tablelist-form') -Array.prototype.slice.call(forms).forEach(function (form) { - form.addEventListener('submit', function (event) { - if (!form.checkValidity()) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.preventDefault(); - if ( - customerNameField.value !== "" && - emailField.value !== "" && - dateField.value !== "" && - phoneField.value !== "" && !editlist - ) { - customerList.add({ - id: '#VZ' + count + "", - customer_name: customerNameField.value, - email: emailField.value, - date: dateField.value, - phone: phoneField.value, - status: isStatus(statusField.value), - }); - customerList.sort('id', { order: "desc" }); - document.getElementById("close-modal").click(); - refreshCallbacks(); - clearFields(); - filterContact("All"); - count++; - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Customer inserted successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } else if ( - customerNameField.value !== "" && - emailField.value !== "" && - dateField.value !== "" && - phoneField.value !== "" && editlist - ){ - var editValues = customerList.get({ - id: idField.value, - }); - Array.from(editValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - x.values({ - id: '' + idField.value + "", - customer_name: customerNameField.value, - email: emailField.value, - date: dateField.value, - phone: phoneField.value, - status: isStatus(statusField.value), - }); - } - }); - document.getElementById("close-modal").click(); - clearFields(); - Swal.fire({ - position: 'center', - icon: 'success', - title: 'Customer updated Successfully!', - showConfirmButton: false, - timer: 2000, - showCloseButton: true - }); - } - } - }, false) -}) - -var statusVal = new Choices(statusField); -function isStatus(val) { - switch (val) { - case "Active": - return ( - '' + - val + - "" - ); - case "Block": - return ( - '' + - val + - "" - ); - } -} - -function ischeckboxcheck() { - Array.from(document.getElementsByName("checkAll")).forEach(function (x) { - x.addEventListener("click", function (e) { - if (e.target.checked) { - e.target.closest("tr").classList.add("table-active"); - } else { - e.target.closest("tr").classList.remove("table-active"); - } - }); - }); -} - -function refreshCallbacks() { - if (removeBtns) - Array.from(removeBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = customerList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); - var isElem = deleteid.body.firstElementChild; - var isdeleteid = deleteid.body.firstElementChild.innerHTML; - if (isdeleteid == itemId) { - document.getElementById("delete-record").addEventListener("click", function () { - customerList.remove("id", isElem.outerHTML); - document.getElementById("deleteRecordModal").click(); - }); - } - }); - }); - }); - - if (editBtns) - Array.from(editBtns).forEach(function (btn) { - btn.addEventListener("click", function (e) { - e.target.closest("tr").children[1].innerText; - itemId = e.target.closest("tr").children[1].innerText; - var itemValues = customerList.get({ - id: itemId, - }); - - Array.from(itemValues).forEach(function (x) { - isid = new DOMParser().parseFromString(x._values.id, "text/html"); - var selectedid = isid.body.firstElementChild.innerHTML; - if (selectedid == itemId) { - editlist = true; - idField.value = selectedid; - customerNameField.value = x._values.customer_name; - emailField.value = x._values.email; - dateField.value = x._values.date; - phoneField.value = x._values.phone; - - if (statusVal) statusVal.destroy(); - statusVal = new Choices(statusField); - val = new DOMParser().parseFromString(x._values.status, "text/html"); - var statusSelec = val.body.firstElementChild.innerHTML; - statusVal.setChoiceByValue(statusSelec); - - flatpickr("#date-field", { - // enableTime: true, - dateFormat: "d M, Y", - defaultDate: x._values.date, - }); - } - }); - }); - }); -} - -function clearFields() { - customerNameField.value = ""; - emailField.value = ""; - dateField.value = ""; - phoneField.value = ""; -} - -function deleteMultiple() { - ids_array = []; - var items = document.getElementsByName('chk_child'); - Array.from(items).forEach(function (ele) { - if (ele.checked == true) { - var trNode = ele.parentNode.parentNode.parentNode; - var id = trNode.querySelector('.id a').innerHTML; - ids_array.push(id); - } - }); - if (typeof ids_array !== 'undefined' && ids_array.length > 0) { - if (confirm('Are you sure you want to delete this?')) { - Array.from(ids_array).forEach(function (id) { - customerList.remove("id", `${id}`); - }); - document.getElementById('checkAll').checked = false; - } else { - return false; - } - } else { - Swal.fire({ - title: 'Please select at least one checkbox', - confirmButtonClass: 'btn btn-info', - buttonsStyling: false, - showCloseButton: true - }); - } -} - - - -document.querySelectorAll(".listjs-table").forEach(function(item){ - item.querySelector(".pagination-next").addEventListener("click", function () { - (item.querySelector(".pagination.listjs-pagination")) ? (item.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - item.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click(): '': ''; - }); -}); - -document.querySelectorAll(".listjs-table").forEach(function(item){ - item.querySelector(".pagination-prev").addEventListener("click", function () { - (item.querySelector(".pagination.listjs-pagination")) ? (item.querySelector(".pagination.listjs-pagination").querySelector(".active")) ? - item.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click(): '': ''; - }); -}); - - -// data- attribute example -var attroptions = { - valueNames: [ - 'name', - 'born', - { - data: ['id'] - }, - { - attr: 'src', - name: 'image' - }, - { - attr: 'href', - name: 'link' - }, - { - attr: 'data-timestamp', - name: 'timestamp' - } - ] -}; - -var attrList = new List('users', attroptions); -attrList.add({ - name: 'Leia', - born: '1954', - image: 'assets/images/users/avatar-5.jpg', - id: 5, - timestamp: '67893' -}); - -// Existing List -var existOptionsList = { - valueNames: ['contact-name', 'contact-message'] -}; -var existList = new List('contact-existing-list', existOptionsList); - -// Fuzzy Search list -var fuzzySearchList = new List('fuzzysearch-list', { - valueNames: ['name'] -}); - -// pagination list -var paginationList = new List('pagination-list', { - valueNames: ['pagi-list'], - page: 3, - pagination: true -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/mailbox.init.js b/src/main/resources/static/assets/js/pages/mailbox.init.js deleted file mode 100644 index 0f664e5..0000000 --- a/src/main/resources/static/assets/js/pages/mailbox.init.js +++ /dev/null @@ -1,507 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: mailbox init Js File -*/ - -var url="assets/json/"; -var allmaillist = ''; -const loader = document.querySelector("#elmLoader"); -// showing loading - -//mail list by json -var getJSON = function (jsonurl, callback) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url + jsonurl, true); - xhr.responseType = "json"; - xhr.onload = function () { - var status = xhr.status; - if (status === 200) { - document.getElementById("elmLoader").innerHTML = ''; - callback(null, xhr.response); - } else { - callback(status, xhr.response); - } - }; - xhr.send(); -}; - -// load mail data -function loadMailData(datas) { - var triggerEl = document.querySelector('#mail-filter-navlist button[data-bs-target="#pills-primary"]') - triggerEl.click() - document.querySelector("#mail-list").innerHTML = ''; - - Array.from(datas).forEach(function (mailData, index) { - - var checkReaded = mailData.readed ? "" : "unread"; - var checkStarred = mailData.starred ? "active" : ""; - var mailcounted = mailData.counted ? '(' + mailData.counted + ')' : ""; - - document.querySelector("#mail-list").innerHTML += - '
  • \ -
    \ -
    \ - \ - \ -
    \ - \ - \ - ' + mailData.name + ' ' + mailcounted + '\ -
    \ - \ -
  • '; - favouriteBtn(); - emailDetailShow(); - emailDetailChange(); - checkBoxAll(); - }); -} - -// load social mail data -function loadSocialMailData(datas) { - Array.from(datas).forEach(function (mailData, index) { - var checkReaded = mailData.readed ? "" : "unread"; - var checkStarred = mailData.starred ? "active" : ""; - var mailcounted = mailData.counted ? '(' + mailData.counted + ')' : ""; - - document.getElementById("social-mail-list").innerHTML += - '
  • \ -
    \ -
    \ - \ - \ -
    \ - \ - \ - ' + mailData.name + ' ' + mailcounted + '\ -
    \ - \ -
  • '; - emailDetailShow(); - emailDetailChange(); - checkBoxAll(); - }); -} - -// load promotions mail data -function loadPromotionsMailData(datas) { - Array.from(datas).forEach(function (mailData, index) { - var checkReaded = mailData.readed ? "" : "unread"; - var checkStarred = mailData.starred ? "active" : ""; - var mailcounted = mailData.counted ? '(' + mailData.counted + ')' : ""; - - document.getElementById("promotions-mail-list").innerHTML += - '
  • \ -
    \ -
    \ - \ - \ -
    \ - \ - \ - ' + mailData.name + ' ' + mailcounted + '\ -
    \ - \ -
  • '; - emailDetailShow(); - emailDetailChange(); - checkBoxAll(); - }); -} - -// get json -getJSON("mail-list.init.json", function (err, data) { - if (err !== null) { - console.log("Something went wrong: " + err); - } else { - allmaillist = data[0].primary; - socialmaillist = data[0].social; - promotionsmaillist = data[0].promotions; - - loadMailData(allmaillist); - loadSocialMailData(socialmaillist); - loadPromotionsMailData(promotionsmaillist); - } -}); - - -// mail list click event -Array.from(document.querySelectorAll('.mail-list a')).forEach(function (mailTab) { - mailTab.addEventListener("click", function () { - var chatUserList = document.querySelector(".mail-list a.active"); - if (chatUserList) chatUserList.classList.remove("active"); - mailTab.classList.add('active'); - - if (mailTab.querySelector('.mail-list-link').hasAttribute('data-type')) { - var tabname = mailTab.querySelector('.mail-list-link').innerHTML; - var filterData = allmaillist.filter(maillist => maillist.labeltype === tabname); - } else { - var tabname = mailTab.querySelector('.mail-list-link').innerHTML; - document.getElementById("mail-list").innerHTML = ''; - if (tabname != 'All') { - var filterData = allmaillist.filter(maillist => maillist.tabtype === tabname); - } else { - var filterData = allmaillist; - } - if (tabname != 'All' && tabname != 'Inbox') { - document.getElementById("mail-filter-navlist").style.display = "none"; - } else { - document.getElementById("mail-filter-navlist").style.display = "block"; - } - } - loadMailData(filterData); - favouriteBtn(); - }); -}) - -// favourite btn -function favouriteBtn() { - Array.from(document.querySelectorAll(".favourite-btn")).forEach(function (item) { - item.addEventListener("click", function () { - if (item.classList.contains("active")) { - item.classList.remove("active"); - } else { - item.classList.add("active"); - } - }); - }); -} -favouriteBtn(); - -// emailDetailShow -function emailDetailShow() { - var bodyElement = document.getElementsByTagName('body')[0]; - Array.from(document.querySelectorAll(".message-list a")).forEach(function (item) { - item.addEventListener("click", function (event) { - bodyElement.classList.add("email-detail-show"); - Array.from(document.querySelectorAll(".message-list li.unread")).forEach(function (element) { - if (element.classList.contains("unread")) { - event.target.closest('li').classList.remove("unread"); - } - }); - }); - }); - - Array.from(document.querySelectorAll(".close-btn-email")).forEach(function (item) { - item.addEventListener("click", function () { - bodyElement.classList.remove("email-detail-show"); - }); - }); - - var isShowMenu = false; - var emailMenuSidebar = document.getElementsByClassName('email-menu-sidebar'); - Array.from(document.querySelectorAll(".email-menu-btn")).forEach(function (item) { - item.addEventListener("click", function () { - Array.from(emailMenuSidebar).forEach(function (elm) { - elm.classList.add("menubar-show"); - isShowMenu = true; - }); - }); - }); - - window.addEventListener('click', function (e) { - if (document.querySelector(".email-menu-sidebar").classList.contains('menubar-show')) { - if (!isShowMenu) { - document.querySelector(".email-menu-sidebar").classList.remove("menubar-show"); - } - isShowMenu = false; - } - }); - favouriteBtn(); -} - -// editor -ClassicEditor.create(document.querySelector('#email-editor')).then(function (editor) { - editor.ui.view.editable.element.style.height = '200px'; - }) - .catch(function (error) { - console.error(error); - }); - -// check all -function checkBoxAll() { - // checkbox-wrapper-mail - Array.from(document.querySelectorAll(".checkbox-wrapper-mail input")).forEach(function (element) { - element.addEventListener('click', function (el) { - if (el.target.checked == true) { - el.target.closest('li').classList.add("active"); - } else { - el.target.closest('li').classList.remove("active"); - } - }); - }); - - // checkbox - var checkboxes = document.querySelectorAll('.tab-pane.show .checkbox-wrapper-mail input'); - Array.from(checkboxes).forEach(function (element) { - element.addEventListener('click', function (event) { - var checkboxes = document.querySelectorAll('.tab-pane.show .checkbox-wrapper-mail input'); - var checkall = document.getElementById('checkall'); - var checkedCount = document.querySelectorAll('.tab-pane.show .checkbox-wrapper-mail input:checked').length; - checkall.checked = checkedCount > 0; - checkall.indeterminate = checkedCount > 0 && checkedCount < checkboxes.length; - - if (event.target.closest('li').classList.contains("active")) { - (checkedCount > 0) ? document.getElementById("email-topbar-actions").style.display = 'block': document.getElementById("email-topbar-actions").style.display = 'none'; - } else { - (checkedCount > 0) ? document.getElementById("email-topbar-actions").style.display = 'block': document.getElementById("email-topbar-actions").style.display = 'none'; - } - }); - }); - - - function checkAll() { - var checkboxes = document.querySelectorAll('.tab-pane.show .checkbox-wrapper-mail input'); - var checkedCount = document.querySelectorAll('.tab-pane.show .checkbox-wrapper-mail input:checked').length; - Array.from(checkboxes).forEach(function (chkbox) { - chkbox.checked = true; - chkbox.parentNode.parentNode.parentNode.classList.add("active"); - }); - (checkedCount > 0) ? document.getElementById("email-topbar-actions").style.display = 'none' : document.getElementById("email-topbar-actions").style.display = 'block'; - - if (checkedCount > 0) { - Array.from(checkboxes).forEach(function (chkbox) { - chkbox.checked = false; - chkbox.parentNode.parentNode.parentNode.classList.remove("active"); - }); - } else { - Array.from(checkboxes).forEach(function (chkbox) { - chkbox.checked = true; - chkbox.parentNode.parentNode.parentNode.classList.add("active"); - }); - } - this.onclick = uncheckAll; - removeItems(); - } - - function uncheckAll() { - var checkboxes = document.querySelectorAll('.tab-pane.show .checkbox-wrapper-mail input'); - var checkedCount = document.querySelectorAll('.tab-pane.show .checkbox-wrapper-mail input:checked').length; - Array.from(checkboxes).forEach(function (chkbox) { - chkbox.checked = false; - chkbox.parentNode.parentNode.parentNode.classList.remove("active"); - }); - (checkedCount > 0) ? document.getElementById("email-topbar-actions").style.display = 'none' : document.getElementById("email-topbar-actions").style.display = 'block'; - if (checkedCount > 0) { - Array.from(checkboxes).forEach(function (chkbox) { - chkbox.checked = false; - chkbox.parentNode.parentNode.parentNode.classList.remove("active"); - }); - } else { - Array.from(checkboxes).forEach(function (chkbox) { - chkbox.checked = true; - chkbox.parentNode.parentNode.parentNode.classList.add("active"); - }); - } - this.onclick = checkAll; - } - - var checkall = document.getElementById("checkall"); - checkall.onclick = checkAll; -} - -// chat-conversation -var scrollEl = new SimpleBar(document.getElementById('chat-conversation')); -scrollEl.getScrollElement().scrollTop = document.getElementById("users-conversation").scrollHeight; - -// removeItems -function removeItems() { - var removeItem = document.getElementById('removeItemModal'); - removeItem.addEventListener('show.bs.modal', function (event) { - document.getElementById("delete-record").addEventListener("click", function () { - Array.from(document.querySelectorAll(".message-list li")).forEach(function (element) { - var filtered = ''; - if (element.classList.contains("active")) { - - var getid = element.querySelector('.form-check-input').value; - - function arrayRemove(arr, value) { - return arr.filter(function (ele) { - return ele.id != value; - }); - } - - var filtered = arrayRemove(allmaillist, getid); - - allmaillist = filtered; - - element.remove(); - } - }); - document.getElementById("btn-close").click(); - if (document.getElementById("email-topbar-actions")) - document.getElementById("email-topbar-actions").style.display = 'none'; - checkall.indeterminate = false; - checkall.checked = false; - }); - }) -} -removeItems(); - -function removeSingleItem() { - var getid = 0; - document.querySelectorAll(".remove-mail").forEach(function (item) { - item.addEventListener('click', function (event) { - getid = item.getAttribute('data-remove-id'); - document.getElementById("delete-record").addEventListener("click", function () { - var filtered = ''; - function arrayRemove(arr, value) { - return arr.filter(function (ele) { - return ele.id != value; - }); - } - filtered = arrayRemove(allmaillist, getid); - allmaillist = filtered; - loadMailData(allmaillist); - document.getElementById("close-btn-email").click(); - }); - }); - }); -} -removeSingleItem(); - -var markAllReadBtn = document.getElementById("mark-all-read"); - -markAllReadBtn.addEventListener('click', function (event) { - if (document.querySelectorAll(".message-list li.unread").length === 0) { - document.getElementById("unreadConversations").style.display = "block"; - setTimeout(hideclipboardNew, 1000); - - function hideclipboardNew() { - document.getElementById("unreadConversations").style.display = "none"; - } - }; - - Array.from(document.querySelectorAll(".message-list li.unread")).forEach(function (element) { - if (element.classList.contains("unread")) { - element.classList.remove("unread"); - } - }); -}); - -var dummyUserImage = "assets/images/users/user-dummy-img.jpg"; - -// email chat detail element -var mailChatDetailElm = false; -document.querySelectorAll(".email-chat-list a").forEach(function (item) { - if (item.classList.contains("active")) { - document.getElementById("emailchat-detailElem").style.display = "block"; - var userListName = document.querySelector(".email-chat-list a.active").querySelector(".chatlist-user-name").innerHTML; - var userListProfile = document.querySelector(".email-chat-list a.active").querySelector(".chatlist-user-image img").getAttribute("src"); - document.querySelector(".email-chat-detail .profile-username").innerHTML = userListName; - document.getElementById("users-conversation").querySelectorAll(".left .chat-avatar").forEach(function (item) { - if (userListProfile) { - item.querySelector("img").setAttribute("src", userListProfile); - } else { - item.querySelector("img").setAttribute("src", dummyUserImage); - } - }); - } - item.addEventListener("click", function (event) { - document.getElementById("emailchat-detailElem").style.display = "block"; - mailChatDetailElm = true; - - // chat user list link active - var chatUserList = document.querySelector(".email-chat-list a.active"); - if (chatUserList) chatUserList.classList.remove("active"); - this.classList.add("active"); - - var currentChatId = "users-chat"; - scrollToBottom(currentChatId); - - //user Name and user Profile change on click - var username = item.querySelector(".chatlist-user-name").innerHTML; - var userProfile = item.querySelector(".chatlist-user-image img").getAttribute("src"); - - document.querySelector(".email-chat-detail .profile-username").innerHTML = username; - var conversationImg = document.getElementById("users-conversation"); - Array.from(conversationImg.querySelectorAll(".left .chat-avatar")).forEach(function (item) { - if (userProfile) { - item.querySelector("img").setAttribute("src", userProfile); - } else { - item.querySelector("img").setAttribute("src", dummyUserImage); - } - }); - }); -}); - -document.getElementById("emailchat-btn-close").addEventListener("click", function () { - document.getElementById("emailchat-detailElem").style.display = "none"; - mailChatDetailElm = false; - document.querySelector(".email-chat-list a.active").classList.remove("active"); -}) - -// emailDetailChange -function emailDetailChange() { - Array.from(document.querySelectorAll(".message-list li")).forEach(function (item) { - item.addEventListener("click", function () { - var mailListId = item.querySelector(".checkbox-wrapper-mail .form-check-input").value - document.querySelector(".remove-mail").setAttribute("data-remove-id", mailListId);; - var subjectTitle = item.querySelector(".subject-title").innerHTML; - document.querySelector(".email-subject-title").innerHTML = subjectTitle; - - var emailTitleLeftName = item.querySelector(".title-name").innerHTML; - Array.from(document.querySelectorAll(".accordion-item.left")).forEach(function (subitem) { - subitem.querySelector(".email-user-name").innerHTML = emailTitleLeftName; - var userImg = item.querySelector(".mail-userimg").value; - subitem.querySelector("img").setAttribute("src", userImg) - }); - - var messageUserName = document.querySelector(".user-name-text").innerHTML; - var usermailProfile = document.querySelector(".header-profile-user").getAttribute("src"); - Array.from(document.querySelectorAll(".accordion-item.right")).forEach(function (subitem) { - subitem.querySelector(".email-user-name-right").innerHTML = messageUserName; - subitem.querySelector("img").setAttribute("src", usermailProfile); - }); - }); - }); -} - -const triggerTabList = document.querySelectorAll('#mail-filter-navlist .nav-tabs button') -triggerTabList.forEach(triggerEl => { - const tabTrigger = new bootstrap.Tab(triggerEl) - - triggerEl.addEventListener('click', event => { - event.preventDefault() - - var activeTab = document.querySelector(".tab-content .tab-pane.show") - - tabTrigger.show() - }) -}) - - -function resizeEvent(){ - var windowSize = document.documentElement.clientWidth; - if (windowSize < 767) { - var chatUserList = document.querySelector(".email-chat-list a.active"); - if (chatUserList) chatUserList.classList.remove("active"); - document.getElementById("emailchat-detailElem").style.display = "none"; - } -} -resizeEvent(); - -window.onresize = resizeEvent; - - diff --git a/src/main/resources/static/assets/js/pages/materialdesign.list.js b/src/main/resources/static/assets/js/pages/materialdesign.list.js deleted file mode 100644 index 0fd06f1..0000000 --- a/src/main/resources/static/assets/js/pages/materialdesign.list.js +++ /dev/null @@ -1,44 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://themesbrand.com/ -Contact: themesbrand@gmail.com -File: Material design Init Js File -*/ - -// icons -function isNew(icon) { - return icon.version === '6.5.95'; -} -function isDeprecated(icon) { - return typeof icon.deprecated == 'undefined' - ? false - : icon.deprecated; -} -function getIconItem(icon, isNewIcon) { - var div = document.createElement('div'), - i = document.createElement('i'); - div.className = "col-xl-3 col-lg-4 col-sm-6"; - i.className = 'mdi mdi-' + icon.name, - span = document.createElement('span'); - div.appendChild(i); - span.appendChild(document.createTextNode('mdi-' + icon.name)); - div.appendChild(span); - return div; -} -(function () { - var iconsCount = 0; - var newIconsCount = 0; - var icons = [{name:"ab-testing",hex:"F01C9",version:"4.0.96"},{name:"abacus",hex:"F16E0",version:"5.9.55"},{name:"abjad-arabic",hex:"F1328",version:"4.9.95"},{name:"abjad-hebrew",hex:"F1329",version:"4.9.95"},{name:"abugida-devanagari",hex:"F132A",version:"4.9.95"},{name:"abugida-thai",hex:"F132B",version:"4.9.95"},{name:"access-point",hex:"F0003",version:"1.5.54"},{name:"access-point-check",hex:"F1538",version:"5.4.55"},{name:"access-point-minus",hex:"F1539",version:"5.4.55"},{name:"access-point-network",hex:"F0002",version:"1.5.54"},{name:"access-point-network-off",hex:"F0BE1",version:"3.2.89"},{name:"access-point-off",hex:"F1511",version:"5.4.55"},{name:"access-point-plus",hex:"F153A",version:"5.4.55"},{name:"access-point-remove",hex:"F153B",version:"5.4.55"},{name:"account",hex:"F0004",version:"1.5.54"},{name:"account-alert",hex:"F0005",version:"1.5.54"},{name:"account-alert-outline",hex:"F0B50",version:"3.0.39"},{name:"account-arrow-down",hex:"F1868",version:"6.2.95"},{name:"account-arrow-down-outline",hex:"F1869",version:"6.2.95"},{name:"account-arrow-left",hex:"F0B51",version:"3.0.39"},{name:"account-arrow-left-outline",hex:"F0B52",version:"3.0.39"},{name:"account-arrow-right",hex:"F0B53",version:"3.0.39"},{name:"account-arrow-right-outline",hex:"F0B54",version:"3.0.39"},{name:"account-arrow-up",hex:"F1867",version:"6.2.95"},{name:"account-arrow-up-outline",hex:"F186A",version:"6.2.95"},{name:"account-box",hex:"F0006",version:"1.5.54"},{name:"account-box-multiple",hex:"F0934",version:"2.4.85"},{name:"account-box-multiple-outline",hex:"F100A",version:"4.1.95"},{name:"account-box-outline",hex:"F0007",version:"1.5.54"},{name:"account-cancel",hex:"F12DF",version:"4.8.95"},{name:"account-cancel-outline",hex:"F12E0",version:"4.8.95"},{name:"account-cash",hex:"F1097",version:"4.2.95"},{name:"account-cash-outline",hex:"F1098",version:"4.2.95"},{name:"account-check",hex:"F0008",version:"1.5.54"},{name:"account-check-outline",hex:"F0BE2",version:"3.2.89"},{name:"account-child",hex:"F0A89",version:"2.7.94"},{name:"account-child-circle",hex:"F0A8A",version:"2.7.94"},{name:"account-child-outline",hex:"F10C8",version:"4.3.95"},{name:"account-circle",hex:"F0009",version:"1.5.54"},{name:"account-circle-outline",hex:"F0B55",version:"3.0.39"},{name:"account-clock",hex:"F0B56",version:"3.0.39"},{name:"account-clock-outline",hex:"F0B57",version:"3.0.39"},{name:"account-cog",hex:"F1370",version:"4.9.95"},{name:"account-cog-outline",hex:"F1371",version:"4.9.95"},{name:"account-convert",hex:"F000A",version:"1.5.54"},{name:"account-convert-outline",hex:"F1301",version:"4.8.95"},{name:"account-cowboy-hat",hex:"F0E9B",version:"3.7.94"},{name:"account-cowboy-hat-outline",hex:"F17F3",version:"6.1.95"},{name:"account-details",hex:"F0631",version:"1.6.50"},{name:"account-details-outline",hex:"F1372",version:"4.9.95"},{name:"account-edit",hex:"F06BC",version:"1.8.36"},{name:"account-edit-outline",hex:"F0FFB",version:"4.0.96"},{name:"account-eye",hex:"F0420",version:"1.5.54"},{name:"account-eye-outline",hex:"F127B",version:"4.7.95"},{name:"account-filter",hex:"F0936",version:"2.4.85"},{name:"account-filter-outline",hex:"F0F9D",version:"4.0.96"},{name:"account-group",hex:"F0849",version:"2.1.99"},{name:"account-group-outline",hex:"F0B58",version:"3.0.39"},{name:"account-hard-hat",hex:"F05B5",version:"1.5.54"},{name:"account-heart",hex:"F0899",version:"2.2.43"},{name:"account-heart-outline",hex:"F0BE3",version:"3.2.89"},{name:"account-injury",hex:"F1815",version:"6.1.95"},{name:"account-injury-outline",hex:"F1816",version:"6.1.95"},{name:"account-key",hex:"F000B",version:"1.5.54"},{name:"account-key-outline",hex:"F0BE4",version:"3.2.89"},{name:"account-lock",hex:"F115E",version:"4.4.95"},{name:"account-lock-open",hex:"F1960",version:"6.5.95"},{name:"account-lock-open-outline",hex:"F1961",version:"6.5.95"},{name:"account-lock-outline",hex:"F115F",version:"4.4.95"},{name:"account-minus",hex:"F000D",version:"1.5.54"},{name:"account-minus-outline",hex:"F0AEC",version:"2.8.94"},{name:"account-multiple",hex:"F000E",version:"1.5.54"},{name:"account-multiple-check",hex:"F08C5",version:"2.3.50"},{name:"account-multiple-check-outline",hex:"F11FE",version:"4.6.95"},{name:"account-multiple-minus",hex:"F05D3",version:"1.5.54"},{name:"account-multiple-minus-outline",hex:"F0BE5",version:"3.2.89"},{name:"account-multiple-outline",hex:"F000F",version:"1.5.54"},{name:"account-multiple-plus",hex:"F0010",version:"1.5.54"},{name:"account-multiple-plus-outline",hex:"F0800",version:"2.1.19"},{name:"account-multiple-remove",hex:"F120A",version:"4.6.95"},{name:"account-multiple-remove-outline",hex:"F120B",version:"4.6.95"},{name:"account-music",hex:"F0803",version:"2.1.19"},{name:"account-music-outline",hex:"F0CE9",version:"3.3.92"},{name:"account-network",hex:"F0011",version:"1.5.54"},{name:"account-network-outline",hex:"F0BE6",version:"3.2.89"},{name:"account-off",hex:"F0012",version:"1.5.54"},{name:"account-off-outline",hex:"F0BE7",version:"3.2.89"},{name:"account-outline",hex:"F0013",version:"1.5.54"},{name:"account-plus",hex:"F0014",version:"1.5.54"},{name:"account-plus-outline",hex:"F0801",version:"2.1.19"},{name:"account-question",hex:"F0B59",version:"3.0.39"},{name:"account-question-outline",hex:"F0B5A",version:"3.0.39"},{name:"account-reactivate",hex:"F152B",version:"5.4.55"},{name:"account-reactivate-outline",hex:"F152C",version:"5.4.55"},{name:"account-remove",hex:"F0015",version:"1.5.54"},{name:"account-remove-outline",hex:"F0AED",version:"2.8.94"},{name:"account-search",hex:"F0016",version:"1.5.54"},{name:"account-search-outline",hex:"F0935",version:"2.4.85"},{name:"account-settings",hex:"F0630",version:"1.6.50"},{name:"account-settings-outline",hex:"F10C9",version:"4.3.95"},{name:"account-star",hex:"F0017",version:"1.5.54"},{name:"account-star-outline",hex:"F0BE8",version:"3.2.89"},{name:"account-supervisor",hex:"F0A8B",version:"2.7.94"},{name:"account-supervisor-circle",hex:"F0A8C",version:"2.7.94"},{name:"account-supervisor-circle-outline",hex:"F14EC",version:"5.4.55"},{name:"account-supervisor-outline",hex:"F112D",version:"4.4.95"},{name:"account-switch",hex:"F0019",version:"1.5.54"},{name:"account-switch-outline",hex:"F04CB",version:"1.5.54"},{name:"account-sync",hex:"F191B",version:"6.4.95"},{name:"account-sync-outline",hex:"F191C",version:"6.4.95"},{name:"account-tie",hex:"F0CE3",version:"3.3.92"},{name:"account-tie-hat",hex:"F1898",version:"6.3.95"},{name:"account-tie-hat-outline",hex:"F1899",version:"6.3.95"},{name:"account-tie-outline",hex:"F10CA",version:"4.3.95"},{name:"account-tie-voice",hex:"F1308",version:"4.8.95"},{name:"account-tie-voice-off",hex:"F130A",version:"4.8.95"},{name:"account-tie-voice-off-outline",hex:"F130B",version:"4.8.95"},{name:"account-tie-voice-outline",hex:"F1309",version:"4.8.95"},{name:"account-voice",hex:"F05CB",version:"1.5.54"},{name:"account-voice-off",hex:"F0ED4",version:"3.7.95"},{name:"account-wrench",hex:"F189A",version:"6.3.95"},{name:"account-wrench-outline",hex:"F189B",version:"6.3.95"},{name:"adjust",hex:"F001A",version:"1.5.54"},{name:"advertisements",hex:"F192A",version:"6.4.95"},{name:"advertisements-off",hex:"F192B",version:"6.4.95"},{name:"air-conditioner",hex:"F001B",version:"1.5.54"},{name:"air-filter",hex:"F0D43",version:"3.4.93"},{name:"air-horn",hex:"F0DAC",version:"3.5.94"},{name:"air-humidifier",hex:"F1099",version:"4.2.95"},{name:"air-humidifier-off",hex:"F1466",version:"5.2.45"},{name:"air-purifier",hex:"F0D44",version:"3.4.93"},{name:"airbag",hex:"F0BE9",version:"3.2.89"},{name:"airballoon",hex:"F001C",version:"1.5.54"},{name:"airballoon-outline",hex:"F100B",version:"4.1.95"},{name:"airplane",hex:"F001D",version:"1.5.54"},{name:"airplane-alert",hex:"F187A",version:"6.2.95"},{name:"airplane-check",hex:"F187B",version:"6.2.95"},{name:"airplane-clock",hex:"F187C",version:"6.2.95"},{name:"airplane-cog",hex:"F187D",version:"6.2.95"},{name:"airplane-edit",hex:"F187E",version:"6.2.95"},{name:"airplane-landing",hex:"F05D4",version:"1.5.54"},{name:"airplane-marker",hex:"F187F",version:"6.2.95"},{name:"airplane-minus",hex:"F1880",version:"6.2.95"},{name:"airplane-off",hex:"F001E",version:"1.5.54"},{name:"airplane-plus",hex:"F1881",version:"6.2.95"},{name:"airplane-remove",hex:"F1882",version:"6.2.95"},{name:"airplane-search",hex:"F1883",version:"6.2.95"},{name:"airplane-settings",hex:"F1884",version:"6.2.95"},{name:"airplane-takeoff",hex:"F05D5",version:"1.5.54"},{name:"airport",hex:"F084B",version:"2.1.99"},{name:"alarm",hex:"F0020",version:"1.5.54"},{name:"alarm-bell",hex:"F078E",version:"2.0.46"},{name:"alarm-check",hex:"F0021",version:"1.5.54"},{name:"alarm-light",hex:"F078F",version:"2.0.46"},{name:"alarm-light-off",hex:"F171E",version:"5.9.55"},{name:"alarm-light-off-outline",hex:"F171F",version:"5.9.55"},{name:"alarm-light-outline",hex:"F0BEA",version:"3.2.89"},{name:"alarm-multiple",hex:"F0022",version:"1.5.54"},{name:"alarm-note",hex:"F0E71",version:"3.7.94"},{name:"alarm-note-off",hex:"F0E72",version:"3.7.94"},{name:"alarm-off",hex:"F0023",version:"1.5.54"},{name:"alarm-panel",hex:"F15C4",version:"5.6.55"},{name:"alarm-panel-outline",hex:"F15C5",version:"5.6.55"},{name:"alarm-plus",hex:"F0024",version:"1.5.54"},{name:"alarm-snooze",hex:"F068E",version:"1.7.12"},{name:"album",hex:"F0025",version:"1.5.54"},{name:"alert",hex:"F0026",version:"1.5.54"},{name:"alert-box",hex:"F0027",version:"1.5.54"},{name:"alert-box-outline",hex:"F0CE4",version:"3.3.92"},{name:"alert-circle",hex:"F0028",version:"1.5.54"},{name:"alert-circle-check",hex:"F11ED",version:"4.5.95"},{name:"alert-circle-check-outline",hex:"F11EE",version:"4.5.95"},{name:"alert-circle-outline",hex:"F05D6",version:"1.5.54"},{name:"alert-decagram",hex:"F06BD",version:"1.8.36"},{name:"alert-decagram-outline",hex:"F0CE5",version:"3.3.92"},{name:"alert-minus",hex:"F14BB",version:"5.3.45"},{name:"alert-minus-outline",hex:"F14BE",version:"5.3.45"},{name:"alert-octagon",hex:"F0029",version:"1.5.54"},{name:"alert-octagon-outline",hex:"F0CE6",version:"3.3.92"},{name:"alert-octagram",hex:"F0767",version:"1.9.32"},{name:"alert-octagram-outline",hex:"F0CE7",version:"3.3.92"},{name:"alert-outline",hex:"F002A",version:"1.5.54"},{name:"alert-plus",hex:"F14BA",version:"5.3.45"},{name:"alert-plus-outline",hex:"F14BD",version:"5.3.45"},{name:"alert-remove",hex:"F14BC",version:"5.3.45"},{name:"alert-remove-outline",hex:"F14BF",version:"5.3.45"},{name:"alert-rhombus",hex:"F11CE",version:"4.5.95"},{name:"alert-rhombus-outline",hex:"F11CF",version:"4.5.95"},{name:"alien",hex:"F089A",version:"2.2.43"},{name:"alien-outline",hex:"F10CB",version:"4.3.95"},{name:"align-horizontal-center",hex:"F11C3",version:"4.5.95"},{name:"align-horizontal-distribute",hex:"F1962",version:"6.5.95"},{name:"align-horizontal-left",hex:"F11C2",version:"4.5.95"},{name:"align-horizontal-right",hex:"F11C4",version:"4.5.95"},{name:"align-vertical-bottom",hex:"F11C5",version:"4.5.95"},{name:"align-vertical-center",hex:"F11C6",version:"4.5.95"},{name:"align-vertical-distribute",hex:"F1963",version:"6.5.95"},{name:"align-vertical-top",hex:"F11C7",version:"4.5.95"},{name:"all-inclusive",hex:"F06BE",version:"1.8.36"},{name:"all-inclusive-box",hex:"F188D",version:"6.2.95"},{name:"all-inclusive-box-outline",hex:"F188E",version:"6.2.95"},{name:"allergy",hex:"F1258",version:"4.7.95"},{name:"alpha",hex:"F002B",version:"1.5.54"},{name:"alpha-a",hex:"F0AEE",version:"2.8.94"},{name:"alpha-a-box",hex:"F0B08",version:"2.8.94"},{name:"alpha-a-box-outline",hex:"F0BEB",version:"3.2.89"},{name:"alpha-a-circle",hex:"F0BEC",version:"3.2.89"},{name:"alpha-a-circle-outline",hex:"F0BED",version:"3.2.89"},{name:"alpha-b",hex:"F0AEF",version:"2.8.94"},{name:"alpha-b-box",hex:"F0B09",version:"2.8.94"},{name:"alpha-b-box-outline",hex:"F0BEE",version:"3.2.89"},{name:"alpha-b-circle",hex:"F0BEF",version:"3.2.89"},{name:"alpha-b-circle-outline",hex:"F0BF0",version:"3.2.89"},{name:"alpha-c",hex:"F0AF0",version:"2.8.94"},{name:"alpha-c-box",hex:"F0B0A",version:"2.8.94"},{name:"alpha-c-box-outline",hex:"F0BF1",version:"3.2.89"},{name:"alpha-c-circle",hex:"F0BF2",version:"3.2.89"},{name:"alpha-c-circle-outline",hex:"F0BF3",version:"3.2.89"},{name:"alpha-d",hex:"F0AF1",version:"2.8.94"},{name:"alpha-d-box",hex:"F0B0B",version:"2.8.94"},{name:"alpha-d-box-outline",hex:"F0BF4",version:"3.2.89"},{name:"alpha-d-circle",hex:"F0BF5",version:"3.2.89"},{name:"alpha-d-circle-outline",hex:"F0BF6",version:"3.2.89"},{name:"alpha-e",hex:"F0AF2",version:"2.8.94"},{name:"alpha-e-box",hex:"F0B0C",version:"2.8.94"},{name:"alpha-e-box-outline",hex:"F0BF7",version:"3.2.89"},{name:"alpha-e-circle",hex:"F0BF8",version:"3.2.89"},{name:"alpha-e-circle-outline",hex:"F0BF9",version:"3.2.89"},{name:"alpha-f",hex:"F0AF3",version:"2.8.94"},{name:"alpha-f-box",hex:"F0B0D",version:"2.8.94"},{name:"alpha-f-box-outline",hex:"F0BFA",version:"3.2.89"},{name:"alpha-f-circle",hex:"F0BFB",version:"3.2.89"},{name:"alpha-f-circle-outline",hex:"F0BFC",version:"3.2.89"},{name:"alpha-g",hex:"F0AF4",version:"2.8.94"},{name:"alpha-g-box",hex:"F0B0E",version:"2.8.94"},{name:"alpha-g-box-outline",hex:"F0BFD",version:"3.2.89"},{name:"alpha-g-circle",hex:"F0BFE",version:"3.2.89"},{name:"alpha-g-circle-outline",hex:"F0BFF",version:"3.2.89"},{name:"alpha-h",hex:"F0AF5",version:"2.8.94"},{name:"alpha-h-box",hex:"F0B0F",version:"2.8.94"},{name:"alpha-h-box-outline",hex:"F0C00",version:"3.2.89"},{name:"alpha-h-circle",hex:"F0C01",version:"3.2.89"},{name:"alpha-h-circle-outline",hex:"F0C02",version:"3.2.89"},{name:"alpha-i",hex:"F0AF6",version:"2.8.94"},{name:"alpha-i-box",hex:"F0B10",version:"2.8.94"},{name:"alpha-i-box-outline",hex:"F0C03",version:"3.2.89"},{name:"alpha-i-circle",hex:"F0C04",version:"3.2.89"},{name:"alpha-i-circle-outline",hex:"F0C05",version:"3.2.89"},{name:"alpha-j",hex:"F0AF7",version:"2.8.94"},{name:"alpha-j-box",hex:"F0B11",version:"2.8.94"},{name:"alpha-j-box-outline",hex:"F0C06",version:"3.2.89"},{name:"alpha-j-circle",hex:"F0C07",version:"3.2.89"},{name:"alpha-j-circle-outline",hex:"F0C08",version:"3.2.89"},{name:"alpha-k",hex:"F0AF8",version:"2.8.94"},{name:"alpha-k-box",hex:"F0B12",version:"2.8.94"},{name:"alpha-k-box-outline",hex:"F0C09",version:"3.2.89"},{name:"alpha-k-circle",hex:"F0C0A",version:"3.2.89"},{name:"alpha-k-circle-outline",hex:"F0C0B",version:"3.2.89"},{name:"alpha-l",hex:"F0AF9",version:"2.8.94"},{name:"alpha-l-box",hex:"F0B13",version:"2.8.94"},{name:"alpha-l-box-outline",hex:"F0C0C",version:"3.2.89"},{name:"alpha-l-circle",hex:"F0C0D",version:"3.2.89"},{name:"alpha-l-circle-outline",hex:"F0C0E",version:"3.2.89"},{name:"alpha-m",hex:"F0AFA",version:"2.8.94"},{name:"alpha-m-box",hex:"F0B14",version:"2.8.94"},{name:"alpha-m-box-outline",hex:"F0C0F",version:"3.2.89"},{name:"alpha-m-circle",hex:"F0C10",version:"3.2.89"},{name:"alpha-m-circle-outline",hex:"F0C11",version:"3.2.89"},{name:"alpha-n",hex:"F0AFB",version:"2.8.94"},{name:"alpha-n-box",hex:"F0B15",version:"2.8.94"},{name:"alpha-n-box-outline",hex:"F0C12",version:"3.2.89"},{name:"alpha-n-circle",hex:"F0C13",version:"3.2.89"},{name:"alpha-n-circle-outline",hex:"F0C14",version:"3.2.89"},{name:"alpha-o",hex:"F0AFC",version:"2.8.94"},{name:"alpha-o-box",hex:"F0B16",version:"2.8.94"},{name:"alpha-o-box-outline",hex:"F0C15",version:"3.2.89"},{name:"alpha-o-circle",hex:"F0C16",version:"3.2.89"},{name:"alpha-o-circle-outline",hex:"F0C17",version:"3.2.89"},{name:"alpha-p",hex:"F0AFD",version:"2.8.94"},{name:"alpha-p-box",hex:"F0B17",version:"2.8.94"},{name:"alpha-p-box-outline",hex:"F0C18",version:"3.2.89"},{name:"alpha-p-circle",hex:"F0C19",version:"3.2.89"},{name:"alpha-p-circle-outline",hex:"F0C1A",version:"3.2.89"},{name:"alpha-q",hex:"F0AFE",version:"2.8.94"},{name:"alpha-q-box",hex:"F0B18",version:"2.8.94"},{name:"alpha-q-box-outline",hex:"F0C1B",version:"3.2.89"},{name:"alpha-q-circle",hex:"F0C1C",version:"3.2.89"},{name:"alpha-q-circle-outline",hex:"F0C1D",version:"3.2.89"},{name:"alpha-r",hex:"F0AFF",version:"2.8.94"},{name:"alpha-r-box",hex:"F0B19",version:"2.8.94"},{name:"alpha-r-box-outline",hex:"F0C1E",version:"3.2.89"},{name:"alpha-r-circle",hex:"F0C1F",version:"3.2.89"},{name:"alpha-r-circle-outline",hex:"F0C20",version:"3.2.89"},{name:"alpha-s",hex:"F0B00",version:"2.8.94"},{name:"alpha-s-box",hex:"F0B1A",version:"2.8.94"},{name:"alpha-s-box-outline",hex:"F0C21",version:"3.2.89"},{name:"alpha-s-circle",hex:"F0C22",version:"3.2.89"},{name:"alpha-s-circle-outline",hex:"F0C23",version:"3.2.89"},{name:"alpha-t",hex:"F0B01",version:"2.8.94"},{name:"alpha-t-box",hex:"F0B1B",version:"2.8.94"},{name:"alpha-t-box-outline",hex:"F0C24",version:"3.2.89"},{name:"alpha-t-circle",hex:"F0C25",version:"3.2.89"},{name:"alpha-t-circle-outline",hex:"F0C26",version:"3.2.89"},{name:"alpha-u",hex:"F0B02",version:"2.8.94"},{name:"alpha-u-box",hex:"F0B1C",version:"2.8.94"},{name:"alpha-u-box-outline",hex:"F0C27",version:"3.2.89"},{name:"alpha-u-circle",hex:"F0C28",version:"3.2.89"},{name:"alpha-u-circle-outline",hex:"F0C29",version:"3.2.89"},{name:"alpha-v",hex:"F0B03",version:"2.8.94"},{name:"alpha-v-box",hex:"F0B1D",version:"2.8.94"},{name:"alpha-v-box-outline",hex:"F0C2A",version:"3.2.89"},{name:"alpha-v-circle",hex:"F0C2B",version:"3.2.89"},{name:"alpha-v-circle-outline",hex:"F0C2C",version:"3.2.89"},{name:"alpha-w",hex:"F0B04",version:"2.8.94"},{name:"alpha-w-box",hex:"F0B1E",version:"2.8.94"},{name:"alpha-w-box-outline",hex:"F0C2D",version:"3.2.89"},{name:"alpha-w-circle",hex:"F0C2E",version:"3.2.89"},{name:"alpha-w-circle-outline",hex:"F0C2F",version:"3.2.89"},{name:"alpha-x",hex:"F0B05",version:"2.8.94"},{name:"alpha-x-box",hex:"F0B1F",version:"2.8.94"},{name:"alpha-x-box-outline",hex:"F0C30",version:"3.2.89"},{name:"alpha-x-circle",hex:"F0C31",version:"3.2.89"},{name:"alpha-x-circle-outline",hex:"F0C32",version:"3.2.89"},{name:"alpha-y",hex:"F0B06",version:"2.8.94"},{name:"alpha-y-box",hex:"F0B20",version:"2.8.94"},{name:"alpha-y-box-outline",hex:"F0C33",version:"3.2.89"},{name:"alpha-y-circle",hex:"F0C34",version:"3.2.89"},{name:"alpha-y-circle-outline",hex:"F0C35",version:"3.2.89"},{name:"alpha-z",hex:"F0B07",version:"2.8.94"},{name:"alpha-z-box",hex:"F0B21",version:"2.8.94"},{name:"alpha-z-box-outline",hex:"F0C36",version:"3.2.89"},{name:"alpha-z-circle",hex:"F0C37",version:"3.2.89"},{name:"alpha-z-circle-outline",hex:"F0C38",version:"3.2.89"},{name:"alphabet-aurebesh",hex:"F132C",version:"4.9.95"},{name:"alphabet-cyrillic",hex:"F132D",version:"4.9.95"},{name:"alphabet-greek",hex:"F132E",version:"4.9.95"},{name:"alphabet-latin",hex:"F132F",version:"4.9.95"},{name:"alphabet-piqad",hex:"F1330",version:"4.9.95"},{name:"alphabet-tengwar",hex:"F1337",version:"4.9.95"},{name:"alphabetical",hex:"F002C",version:"1.5.54"},{name:"alphabetical-off",hex:"F100C",version:"4.1.95"},{name:"alphabetical-variant",hex:"F100D",version:"4.1.95"},{name:"alphabetical-variant-off",hex:"F100E",version:"4.1.95"},{name:"altimeter",hex:"F05D7",version:"1.5.54"},{name:"ambulance",hex:"F002F",version:"1.5.54"},{name:"ammunition",hex:"F0CE8",version:"3.3.92"},{name:"ampersand",hex:"F0A8D",version:"2.7.94"},{name:"amplifier",hex:"F0030",version:"1.5.54"},{name:"amplifier-off",hex:"F11B5",version:"4.5.95"},{name:"anchor",hex:"F0031",version:"1.5.54"},{name:"android",hex:"F0032",version:"1.5.54"},{name:"android-messages",hex:"F0D45",version:"3.4.93"},{name:"android-studio",hex:"F0034",version:"1.5.54"},{name:"angle-acute",hex:"F0937",version:"2.4.85"},{name:"angle-obtuse",hex:"F0938",version:"2.4.85"},{name:"angle-right",hex:"F0939",version:"2.4.85"},{name:"angular",hex:"F06B2",version:"1.7.22"},{name:"angularjs",hex:"F06BF",version:"1.8.36"},{name:"animation",hex:"F05D8",version:"1.5.54"},{name:"animation-outline",hex:"F0A8F",version:"2.7.94"},{name:"animation-play",hex:"F093A",version:"2.4.85"},{name:"animation-play-outline",hex:"F0A90",version:"2.7.94"},{name:"ansible",hex:"F109A",version:"4.2.95"},{name:"antenna",hex:"F1119",version:"4.3.95"},{name:"anvil",hex:"F089B",version:"2.2.43"},{name:"apache-kafka",hex:"F100F",version:"4.1.95"},{name:"api",hex:"F109B",version:"4.2.95"},{name:"api-off",hex:"F1257",version:"4.6.95"},{name:"apple",hex:"F0035",version:"1.5.54"},{name:"apple-finder",hex:"F0036",version:"1.5.54"},{name:"apple-icloud",hex:"F0038",version:"1.5.54"},{name:"apple-ios",hex:"F0037",version:"1.5.54"},{name:"apple-keyboard-caps",hex:"F0632",version:"1.6.50"},{name:"apple-keyboard-command",hex:"F0633",version:"1.6.50"},{name:"apple-keyboard-control",hex:"F0634",version:"1.6.50"},{name:"apple-keyboard-option",hex:"F0635",version:"1.6.50"},{name:"apple-keyboard-shift",hex:"F0636",version:"1.6.50"},{name:"apple-safari",hex:"F0039",version:"1.5.54"},{name:"application",hex:"F08C6",version:"2.3.50"},{name:"application-array",hex:"F10F5",version:"4.3.95"},{name:"application-array-outline",hex:"F10F6",version:"4.3.95"},{name:"application-braces",hex:"F10F7",version:"4.3.95"},{name:"application-braces-outline",hex:"F10F8",version:"4.3.95"},{name:"application-brackets",hex:"F0C8B",version:"3.2.89"},{name:"application-brackets-outline",hex:"F0C8C",version:"3.2.89"},{name:"application-cog",hex:"F0675",version:"1.7.12"},{name:"application-cog-outline",hex:"F1577",version:"5.5.55"},{name:"application-edit",hex:"F00AE",version:"1.5.54"},{name:"application-edit-outline",hex:"F0619",version:"1.6.50"},{name:"application-export",hex:"F0DAD",version:"3.5.94"},{name:"application-import",hex:"F0DAE",version:"3.5.94"},{name:"application-outline",hex:"F0614",version:"1.6.50"},{name:"application-parentheses",hex:"F10F9",version:"4.3.95"},{name:"application-parentheses-outline",hex:"F10FA",version:"4.3.95"},{name:"application-settings",hex:"F0B60",version:"3.0.39"},{name:"application-settings-outline",hex:"F1555",version:"5.5.55"},{name:"application-variable",hex:"F10FB",version:"4.3.95"},{name:"application-variable-outline",hex:"F10FC",version:"4.3.95"},{name:"approximately-equal",hex:"F0F9E",version:"4.0.96"},{name:"approximately-equal-box",hex:"F0F9F",version:"4.0.96"},{name:"apps",hex:"F003B",version:"1.5.54"},{name:"apps-box",hex:"F0D46",version:"3.4.93"},{name:"arch",hex:"F08C7",version:"2.3.50"},{name:"archive",hex:"F003C",version:"1.5.54"},{name:"archive-alert",hex:"F14FD",version:"5.4.55"},{name:"archive-alert-outline",hex:"F14FE",version:"5.4.55"},{name:"archive-arrow-down",hex:"F1259",version:"4.7.95"},{name:"archive-arrow-down-outline",hex:"F125A",version:"4.7.95"},{name:"archive-arrow-up",hex:"F125B",version:"4.7.95"},{name:"archive-arrow-up-outline",hex:"F125C",version:"4.7.95"},{name:"archive-cancel",hex:"F174B",version:"6.1.95"},{name:"archive-cancel-outline",hex:"F174C",version:"6.1.95"},{name:"archive-check",hex:"F174D",version:"6.1.95"},{name:"archive-check-outline",hex:"F174E",version:"6.1.95"},{name:"archive-clock",hex:"F174F",version:"6.1.95"},{name:"archive-clock-outline",hex:"F1750",version:"6.1.95"},{name:"archive-cog",hex:"F1751",version:"6.1.95"},{name:"archive-cog-outline",hex:"F1752",version:"6.1.95"},{name:"archive-edit",hex:"F1753",version:"6.1.95"},{name:"archive-edit-outline",hex:"F1754",version:"6.1.95"},{name:"archive-eye",hex:"F1755",version:"6.1.95"},{name:"archive-eye-outline",hex:"F1756",version:"6.1.95"},{name:"archive-lock",hex:"F1757",version:"6.1.95"},{name:"archive-lock-open",hex:"F1758",version:"6.1.95"},{name:"archive-lock-open-outline",hex:"F1759",version:"6.1.95"},{name:"archive-lock-outline",hex:"F175A",version:"6.1.95"},{name:"archive-marker",hex:"F175B",version:"6.1.95"},{name:"archive-marker-outline",hex:"F175C",version:"6.1.95"},{name:"archive-minus",hex:"F175D",version:"6.1.95"},{name:"archive-minus-outline",hex:"F175E",version:"6.1.95"},{name:"archive-music",hex:"F175F",version:"6.1.95"},{name:"archive-music-outline",hex:"F1760",version:"6.1.95"},{name:"archive-off",hex:"F1761",version:"6.1.95"},{name:"archive-off-outline",hex:"F1762",version:"6.1.95"},{name:"archive-outline",hex:"F120E",version:"4.6.95"},{name:"archive-plus",hex:"F1763",version:"6.1.95"},{name:"archive-plus-outline",hex:"F1764",version:"6.1.95"},{name:"archive-refresh",hex:"F1765",version:"6.1.95"},{name:"archive-refresh-outline",hex:"F1766",version:"6.1.95"},{name:"archive-remove",hex:"F1767",version:"6.1.95"},{name:"archive-remove-outline",hex:"F1768",version:"6.1.95"},{name:"archive-search",hex:"F1769",version:"6.1.95"},{name:"archive-search-outline",hex:"F176A",version:"6.1.95"},{name:"archive-settings",hex:"F176B",version:"6.1.95"},{name:"archive-settings-outline",hex:"F176C",version:"6.1.95"},{name:"archive-star",hex:"F176D",version:"6.1.95"},{name:"archive-star-outline",hex:"F176E",version:"6.1.95"},{name:"archive-sync",hex:"F176F",version:"6.1.95"},{name:"archive-sync-outline",hex:"F1770",version:"6.1.95"},{name:"arm-flex",hex:"F0FD7",version:"4.2.95"},{name:"arm-flex-outline",hex:"F0FD6",version:"4.2.95"},{name:"arrange-bring-forward",hex:"F003D",version:"1.5.54"},{name:"arrange-bring-to-front",hex:"F003E",version:"1.5.54"},{name:"arrange-send-backward",hex:"F003F",version:"1.5.54"},{name:"arrange-send-to-back",hex:"F0040",version:"1.5.54"},{name:"arrow-all",hex:"F0041",version:"1.5.54"},{name:"arrow-bottom-left",hex:"F0042",version:"1.5.54"},{name:"arrow-bottom-left-bold-box",hex:"F1964",version:"6.5.95"},{name:"arrow-bottom-left-bold-box-outline",hex:"F1965",version:"6.5.95"},{name:"arrow-bottom-left-bold-outline",hex:"F09B7",version:"2.5.94"},{name:"arrow-bottom-left-thick",hex:"F09B8",version:"2.5.94"},{name:"arrow-bottom-left-thin",hex:"F19B6",version:"6.5.95"},{name:"arrow-bottom-left-thin-circle-outline",hex:"F1596",version:"5.5.55"},{name:"arrow-bottom-right",hex:"F0043",version:"1.5.54"},{name:"arrow-bottom-right-bold-box",hex:"F1966",version:"6.5.95"},{name:"arrow-bottom-right-bold-box-outline",hex:"F1967",version:"6.5.95"},{name:"arrow-bottom-right-bold-outline",hex:"F09B9",version:"2.5.94"},{name:"arrow-bottom-right-thick",hex:"F09BA",version:"2.5.94"},{name:"arrow-bottom-right-thin",hex:"F19B7",version:"6.5.95"},{name:"arrow-bottom-right-thin-circle-outline",hex:"F1595",version:"5.5.55"},{name:"arrow-collapse",hex:"F0615",version:"1.6.50"},{name:"arrow-collapse-all",hex:"F0044",version:"1.5.54"},{name:"arrow-collapse-down",hex:"F0792",version:"2.0.46"},{name:"arrow-collapse-horizontal",hex:"F084C",version:"2.1.99"},{name:"arrow-collapse-left",hex:"F0793",version:"2.0.46"},{name:"arrow-collapse-right",hex:"F0794",version:"2.0.46"},{name:"arrow-collapse-up",hex:"F0795",version:"2.0.46"},{name:"arrow-collapse-vertical",hex:"F084D",version:"2.1.99"},{name:"arrow-decision",hex:"F09BB",version:"2.5.94"},{name:"arrow-decision-auto",hex:"F09BC",version:"2.5.94"},{name:"arrow-decision-auto-outline",hex:"F09BD",version:"2.5.94"},{name:"arrow-decision-outline",hex:"F09BE",version:"2.5.94"},{name:"arrow-down",hex:"F0045",version:"1.5.54"},{name:"arrow-down-bold",hex:"F072E",version:"1.9.32"},{name:"arrow-down-bold-box",hex:"F072F",version:"1.9.32"},{name:"arrow-down-bold-box-outline",hex:"F0730",version:"1.9.32"},{name:"arrow-down-bold-circle",hex:"F0047",version:"1.5.54"},{name:"arrow-down-bold-circle-outline",hex:"F0048",version:"1.5.54"},{name:"arrow-down-bold-hexagon-outline",hex:"F0049",version:"1.5.54"},{name:"arrow-down-bold-outline",hex:"F09BF",version:"2.5.94"},{name:"arrow-down-box",hex:"F06C0",version:"1.8.36"},{name:"arrow-down-circle",hex:"F0CDB",version:"3.3.92"},{name:"arrow-down-circle-outline",hex:"F0CDC",version:"3.3.92"},{name:"arrow-down-drop-circle",hex:"F004A",version:"1.5.54"},{name:"arrow-down-drop-circle-outline",hex:"F004B",version:"1.5.54"},{name:"arrow-down-left",hex:"F17A1",version:"6.1.95"},{name:"arrow-down-left-bold",hex:"F17A2",version:"6.1.95"},{name:"arrow-down-right",hex:"F17A3",version:"6.1.95"},{name:"arrow-down-right-bold",hex:"F17A4",version:"6.1.95"},{name:"arrow-down-thick",hex:"F0046",version:"1.5.54"},{name:"arrow-down-thin",hex:"F19B3",version:"6.5.95"},{name:"arrow-down-thin-circle-outline",hex:"F1599",version:"5.5.55"},{name:"arrow-expand",hex:"F0616",version:"1.6.50"},{name:"arrow-expand-all",hex:"F004C",version:"1.5.54"},{name:"arrow-expand-down",hex:"F0796",version:"2.0.46"},{name:"arrow-expand-horizontal",hex:"F084E",version:"2.1.99"},{name:"arrow-expand-left",hex:"F0797",version:"2.0.46"},{name:"arrow-expand-right",hex:"F0798",version:"2.0.46"},{name:"arrow-expand-up",hex:"F0799",version:"2.0.46"},{name:"arrow-expand-vertical",hex:"F084F",version:"2.1.99"},{name:"arrow-horizontal-lock",hex:"F115B",version:"4.4.95"},{name:"arrow-left",hex:"F004D",version:"1.5.54"},{name:"arrow-left-bold",hex:"F0731",version:"1.9.32"},{name:"arrow-left-bold-box",hex:"F0732",version:"1.9.32"},{name:"arrow-left-bold-box-outline",hex:"F0733",version:"1.9.32"},{name:"arrow-left-bold-circle",hex:"F004F",version:"1.5.54"},{name:"arrow-left-bold-circle-outline",hex:"F0050",version:"1.5.54"},{name:"arrow-left-bold-hexagon-outline",hex:"F0051",version:"1.5.54"},{name:"arrow-left-bold-outline",hex:"F09C0",version:"2.5.94"},{name:"arrow-left-bottom",hex:"F17A5",version:"6.1.95"},{name:"arrow-left-bottom-bold",hex:"F17A6",version:"6.1.95"},{name:"arrow-left-box",hex:"F06C1",version:"1.8.36"},{name:"arrow-left-circle",hex:"F0CDD",version:"3.3.92"},{name:"arrow-left-circle-outline",hex:"F0CDE",version:"3.3.92"},{name:"arrow-left-drop-circle",hex:"F0052",version:"1.5.54"},{name:"arrow-left-drop-circle-outline",hex:"F0053",version:"1.5.54"},{name:"arrow-left-right",hex:"F0E73",version:"3.7.94"},{name:"arrow-left-right-bold",hex:"F0E74",version:"3.7.94"},{name:"arrow-left-right-bold-outline",hex:"F09C1",version:"2.5.94"},{name:"arrow-left-thick",hex:"F004E",version:"1.5.54"},{name:"arrow-left-thin",hex:"F19B1",version:"6.5.95"},{name:"arrow-left-thin-circle-outline",hex:"F159A",version:"5.5.55"},{name:"arrow-left-top",hex:"F17A7",version:"6.1.95"},{name:"arrow-left-top-bold",hex:"F17A8",version:"6.1.95"},{name:"arrow-projectile",hex:"F1840",version:"6.2.95"},{name:"arrow-projectile-multiple",hex:"F183F",version:"6.2.95"},{name:"arrow-right",hex:"F0054",version:"1.5.54"},{name:"arrow-right-bold",hex:"F0734",version:"1.9.32"},{name:"arrow-right-bold-box",hex:"F0735",version:"1.9.32"},{name:"arrow-right-bold-box-outline",hex:"F0736",version:"1.9.32"},{name:"arrow-right-bold-circle",hex:"F0056",version:"1.5.54"},{name:"arrow-right-bold-circle-outline",hex:"F0057",version:"1.5.54"},{name:"arrow-right-bold-hexagon-outline",hex:"F0058",version:"1.5.54"},{name:"arrow-right-bold-outline",hex:"F09C2",version:"2.5.94"},{name:"arrow-right-bottom",hex:"F17A9",version:"6.1.95"},{name:"arrow-right-bottom-bold",hex:"F17AA",version:"6.1.95"},{name:"arrow-right-box",hex:"F06C2",version:"1.8.36"},{name:"arrow-right-circle",hex:"F0CDF",version:"3.3.92"},{name:"arrow-right-circle-outline",hex:"F0CE0",version:"3.3.92"},{name:"arrow-right-drop-circle",hex:"F0059",version:"1.5.54"},{name:"arrow-right-drop-circle-outline",hex:"F005A",version:"1.5.54"},{name:"arrow-right-thick",hex:"F0055",version:"1.5.54"},{name:"arrow-right-thin",hex:"F19B0",version:"6.5.95"},{name:"arrow-right-thin-circle-outline",hex:"F1598",version:"5.5.55"},{name:"arrow-right-top",hex:"F17AB",version:"6.1.95"},{name:"arrow-right-top-bold",hex:"F17AC",version:"6.1.95"},{name:"arrow-split-horizontal",hex:"F093B",version:"2.4.85"},{name:"arrow-split-vertical",hex:"F093C",version:"2.4.85"},{name:"arrow-top-left",hex:"F005B",version:"1.5.54"},{name:"arrow-top-left-bold-box",hex:"F1968",version:"6.5.95"},{name:"arrow-top-left-bold-box-outline",hex:"F1969",version:"6.5.95"},{name:"arrow-top-left-bold-outline",hex:"F09C3",version:"2.5.94"},{name:"arrow-top-left-bottom-right",hex:"F0E75",version:"3.7.94"},{name:"arrow-top-left-bottom-right-bold",hex:"F0E76",version:"3.7.94"},{name:"arrow-top-left-thick",hex:"F09C4",version:"2.5.94"},{name:"arrow-top-left-thin",hex:"F19B5",version:"6.5.95"},{name:"arrow-top-left-thin-circle-outline",hex:"F1593",version:"5.5.55"},{name:"arrow-top-right",hex:"F005C",version:"1.5.54"},{name:"arrow-top-right-bold-box",hex:"F196A",version:"6.5.95"},{name:"arrow-top-right-bold-box-outline",hex:"F196B",version:"6.5.95"},{name:"arrow-top-right-bold-outline",hex:"F09C5",version:"2.5.94"},{name:"arrow-top-right-bottom-left",hex:"F0E77",version:"3.7.94"},{name:"arrow-top-right-bottom-left-bold",hex:"F0E78",version:"3.7.94"},{name:"arrow-top-right-thick",hex:"F09C6",version:"2.5.94"},{name:"arrow-top-right-thin",hex:"F19B4",version:"6.5.95"},{name:"arrow-top-right-thin-circle-outline",hex:"F1594",version:"5.5.55"},{name:"arrow-u-down-left",hex:"F17AD",version:"6.1.95"},{name:"arrow-u-down-left-bold",hex:"F17AE",version:"6.1.95"},{name:"arrow-u-down-right",hex:"F17AF",version:"6.1.95"},{name:"arrow-u-down-right-bold",hex:"F17B0",version:"6.1.95"},{name:"arrow-u-left-bottom",hex:"F17B1",version:"6.1.95"},{name:"arrow-u-left-bottom-bold",hex:"F17B2",version:"6.1.95"},{name:"arrow-u-left-top",hex:"F17B3",version:"6.1.95"},{name:"arrow-u-left-top-bold",hex:"F17B4",version:"6.1.95"},{name:"arrow-u-right-bottom",hex:"F17B5",version:"6.1.95"},{name:"arrow-u-right-bottom-bold",hex:"F17B6",version:"6.1.95"},{name:"arrow-u-right-top",hex:"F17B7",version:"6.1.95"},{name:"arrow-u-right-top-bold",hex:"F17B8",version:"6.1.95"},{name:"arrow-u-up-left",hex:"F17B9",version:"6.1.95"},{name:"arrow-u-up-left-bold",hex:"F17BA",version:"6.1.95"},{name:"arrow-u-up-right",hex:"F17BB",version:"6.1.95"},{name:"arrow-u-up-right-bold",hex:"F17BC",version:"6.1.95"},{name:"arrow-up",hex:"F005D",version:"1.5.54"},{name:"arrow-up-bold",hex:"F0737",version:"1.9.32"},{name:"arrow-up-bold-box",hex:"F0738",version:"1.9.32"},{name:"arrow-up-bold-box-outline",hex:"F0739",version:"1.9.32"},{name:"arrow-up-bold-circle",hex:"F005F",version:"1.5.54"},{name:"arrow-up-bold-circle-outline",hex:"F0060",version:"1.5.54"},{name:"arrow-up-bold-hexagon-outline",hex:"F0061",version:"1.5.54"},{name:"arrow-up-bold-outline",hex:"F09C7",version:"2.5.94"},{name:"arrow-up-box",hex:"F06C3",version:"1.8.36"},{name:"arrow-up-circle",hex:"F0CE1",version:"3.3.92"},{name:"arrow-up-circle-outline",hex:"F0CE2",version:"3.3.92"},{name:"arrow-up-down",hex:"F0E79",version:"3.7.94"},{name:"arrow-up-down-bold",hex:"F0E7A",version:"3.7.94"},{name:"arrow-up-down-bold-outline",hex:"F09C8",version:"2.5.94"},{name:"arrow-up-drop-circle",hex:"F0062",version:"1.5.54"},{name:"arrow-up-drop-circle-outline",hex:"F0063",version:"1.5.54"},{name:"arrow-up-left",hex:"F17BD",version:"6.1.95"},{name:"arrow-up-left-bold",hex:"F17BE",version:"6.1.95"},{name:"arrow-up-right",hex:"F17BF",version:"6.1.95"},{name:"arrow-up-right-bold",hex:"F17C0",version:"6.1.95"},{name:"arrow-up-thick",hex:"F005E",version:"1.5.54"},{name:"arrow-up-thin",hex:"F19B2",version:"6.5.95"},{name:"arrow-up-thin-circle-outline",hex:"F1597",version:"5.5.55"},{name:"arrow-vertical-lock",hex:"F115C",version:"4.4.95"},{name:"artstation",hex:"F0B5B",version:"3.0.39"},{name:"aspect-ratio",hex:"F0A24",version:"2.6.95"},{name:"assistant",hex:"F0064",version:"1.5.54"},{name:"asterisk",hex:"F06C4",version:"1.8.36"},{name:"at",hex:"F0065",version:"1.5.54"},{name:"atlassian",hex:"F0804",version:"2.1.19"},{name:"atm",hex:"F0D47",version:"3.4.93"},{name:"atom",hex:"F0768",version:"1.9.32"},{name:"atom-variant",hex:"F0E7B",version:"3.7.94"},{name:"attachment",hex:"F0066",version:"1.5.54"},{name:"audio-input-rca",hex:"F186B",version:"6.2.95"},{name:"audio-input-stereo-minijack",hex:"F186C",version:"6.2.95"},{name:"audio-input-xlr",hex:"F186D",version:"6.2.95"},{name:"audio-video",hex:"F093D",version:"2.4.85"},{name:"audio-video-off",hex:"F11B6",version:"4.5.95"},{name:"augmented-reality",hex:"F0850",version:"2.1.99"},{name:"auto-download",hex:"F137E",version:"4.9.95"},{name:"auto-fix",hex:"F0068",version:"1.5.54"},{name:"auto-upload",hex:"F0069",version:"1.5.54"},{name:"autorenew",hex:"F006A",version:"1.5.54"},{name:"av-timer",hex:"F006B",version:"1.5.54"},{name:"aws",hex:"F0E0F",version:"3.6.95"},{name:"axe",hex:"F08C8",version:"2.3.50"},{name:"axe-battle",hex:"F1842",version:"6.2.95"},{name:"axis",hex:"F0D48",version:"3.4.93"},{name:"axis-arrow",hex:"F0D49",version:"3.4.93"},{name:"axis-arrow-info",hex:"F140E",version:"5.1.45"},{name:"axis-arrow-lock",hex:"F0D4A",version:"3.4.93"},{name:"axis-lock",hex:"F0D4B",version:"3.4.93"},{name:"axis-x-arrow",hex:"F0D4C",version:"3.4.93"},{name:"axis-x-arrow-lock",hex:"F0D4D",version:"3.4.93"},{name:"axis-x-rotate-clockwise",hex:"F0D4E",version:"3.4.93"},{name:"axis-x-rotate-counterclockwise",hex:"F0D4F",version:"3.4.93"},{name:"axis-x-y-arrow-lock",hex:"F0D50",version:"3.4.93"},{name:"axis-y-arrow",hex:"F0D51",version:"3.4.93"},{name:"axis-y-arrow-lock",hex:"F0D52",version:"3.4.93"},{name:"axis-y-rotate-clockwise",hex:"F0D53",version:"3.4.93"},{name:"axis-y-rotate-counterclockwise",hex:"F0D54",version:"3.4.93"},{name:"axis-z-arrow",hex:"F0D55",version:"3.4.93"},{name:"axis-z-arrow-lock",hex:"F0D56",version:"3.4.93"},{name:"axis-z-rotate-clockwise",hex:"F0D57",version:"3.4.93"},{name:"axis-z-rotate-counterclockwise",hex:"F0D58",version:"3.4.93"},{name:"babel",hex:"F0A25",version:"2.6.95"},{name:"baby",hex:"F006C",version:"1.5.54"},{name:"baby-bottle",hex:"F0F39",version:"3.9.97"},{name:"baby-bottle-outline",hex:"F0F3A",version:"3.9.97"},{name:"baby-buggy",hex:"F13E0",version:"5.1.45"},{name:"baby-carriage",hex:"F068F",version:"1.7.12"},{name:"baby-carriage-off",hex:"F0FA0",version:"4.0.96"},{name:"baby-face",hex:"F0E7C",version:"3.7.94"},{name:"baby-face-outline",hex:"F0E7D",version:"3.7.94"},{name:"backburger",hex:"F006D",version:"1.5.54"},{name:"backspace",hex:"F006E",version:"1.5.54"},{name:"backspace-outline",hex:"F0B5C",version:"3.0.39"},{name:"backspace-reverse",hex:"F0E7E",version:"3.7.94"},{name:"backspace-reverse-outline",hex:"F0E7F",version:"3.7.94"},{name:"backup-restore",hex:"F006F",version:"1.5.54"},{name:"bacteria",hex:"F0ED5",version:"3.8.95"},{name:"bacteria-outline",hex:"F0ED6",version:"3.8.95"},{name:"badge-account",hex:"F0DA7",version:"3.5.94"},{name:"badge-account-alert",hex:"F0DA8",version:"3.5.94"},{name:"badge-account-alert-outline",hex:"F0DA9",version:"3.5.94"},{name:"badge-account-horizontal",hex:"F0E0D",version:"3.6.95"},{name:"badge-account-horizontal-outline",hex:"F0E0E",version:"3.6.95"},{name:"badge-account-outline",hex:"F0DAA",version:"3.5.94"},{name:"badminton",hex:"F0851",version:"2.1.99"},{name:"bag-carry-on",hex:"F0F3B",version:"3.9.97"},{name:"bag-carry-on-check",hex:"F0D65",version:"3.4.93"},{name:"bag-carry-on-off",hex:"F0F3C",version:"3.9.97"},{name:"bag-checked",hex:"F0F3D",version:"3.9.97"},{name:"bag-personal",hex:"F0E10",version:"3.6.95"},{name:"bag-personal-off",hex:"F0E11",version:"3.6.95"},{name:"bag-personal-off-outline",hex:"F0E12",version:"3.6.95"},{name:"bag-personal-outline",hex:"F0E13",version:"3.6.95"},{name:"bag-suitcase",hex:"F158B",version:"5.5.55"},{name:"bag-suitcase-off",hex:"F158D",version:"5.5.55"},{name:"bag-suitcase-off-outline",hex:"F158E",version:"5.5.55"},{name:"bag-suitcase-outline",hex:"F158C",version:"5.5.55"},{name:"baguette",hex:"F0F3E",version:"3.9.97"},{name:"balcony",hex:"F1817",version:"6.1.95"},{name:"balloon",hex:"F0A26",version:"2.6.95"},{name:"ballot",hex:"F09C9",version:"2.5.94"},{name:"ballot-outline",hex:"F09CA",version:"2.5.94"},{name:"ballot-recount",hex:"F0C39",version:"3.2.89"},{name:"ballot-recount-outline",hex:"F0C3A",version:"3.2.89"},{name:"bandage",hex:"F0DAF",version:"3.5.94"},{name:"bank",hex:"F0070",version:"1.5.54"},{name:"bank-check",hex:"F1655",version:"5.7.55"},{name:"bank-minus",hex:"F0DB0",version:"3.5.94"},{name:"bank-off",hex:"F1656",version:"5.7.55"},{name:"bank-off-outline",hex:"F1657",version:"5.7.55"},{name:"bank-outline",hex:"F0E80",version:"3.7.94"},{name:"bank-plus",hex:"F0DB1",version:"3.5.94"},{name:"bank-remove",hex:"F0DB2",version:"3.5.94"},{name:"bank-transfer",hex:"F0A27",version:"2.6.95"},{name:"bank-transfer-in",hex:"F0A28",version:"2.6.95"},{name:"bank-transfer-out",hex:"F0A29",version:"2.6.95"},{name:"barcode",hex:"F0071",version:"1.5.54"},{name:"barcode-off",hex:"F1236",version:"4.6.95"},{name:"barcode-scan",hex:"F0072",version:"1.5.54"},{name:"barley",hex:"F0073",version:"1.5.54"},{name:"barley-off",hex:"F0B5D",version:"3.0.39"},{name:"barn",hex:"F0B5E",version:"3.0.39"},{name:"barrel",hex:"F0074",version:"1.5.54"},{name:"baseball",hex:"F0852",version:"2.1.99"},{name:"baseball-bat",hex:"F0853",version:"2.1.99"},{name:"baseball-diamond",hex:"F15EC",version:"5.6.55"},{name:"baseball-diamond-outline",hex:"F15ED",version:"5.6.55"},{name:"bash",hex:"F1183",version:"4.4.95"},{name:"basket",hex:"F0076",version:"1.5.54"},{name:"basket-check",hex:"F18E5",version:"6.3.95"},{name:"basket-check-outline",hex:"F18E6",version:"6.3.95"},{name:"basket-fill",hex:"F0077",version:"1.5.54"},{name:"basket-minus",hex:"F1523",version:"5.4.55"},{name:"basket-minus-outline",hex:"F1524",version:"5.4.55"},{name:"basket-off",hex:"F1525",version:"5.4.55"},{name:"basket-off-outline",hex:"F1526",version:"5.4.55"},{name:"basket-outline",hex:"F1181",version:"4.4.95"},{name:"basket-plus",hex:"F1527",version:"5.4.55"},{name:"basket-plus-outline",hex:"F1528",version:"5.4.55"},{name:"basket-remove",hex:"F1529",version:"5.4.55"},{name:"basket-remove-outline",hex:"F152A",version:"5.4.55"},{name:"basket-unfill",hex:"F0078",version:"1.5.54"},{name:"basketball",hex:"F0806",version:"2.1.19"},{name:"basketball-hoop",hex:"F0C3B",version:"3.2.89"},{name:"basketball-hoop-outline",hex:"F0C3C",version:"3.2.89"},{name:"bat",hex:"F0B5F",version:"3.0.39"},{name:"bathtub",hex:"F1818",version:"6.1.95"},{name:"bathtub-outline",hex:"F1819",version:"6.1.95"},{name:"battery",hex:"F0079",version:"1.5.54"},{name:"battery-10",hex:"F007A",version:"1.5.54"},{name:"battery-10-bluetooth",hex:"F093E",version:"2.4.85"},{name:"battery-20",hex:"F007B",version:"1.5.54"},{name:"battery-20-bluetooth",hex:"F093F",version:"2.4.85"},{name:"battery-30",hex:"F007C",version:"1.5.54"},{name:"battery-30-bluetooth",hex:"F0940",version:"2.4.85"},{name:"battery-40",hex:"F007D",version:"1.5.54"},{name:"battery-40-bluetooth",hex:"F0941",version:"2.4.85"},{name:"battery-50",hex:"F007E",version:"1.5.54"},{name:"battery-50-bluetooth",hex:"F0942",version:"2.4.85"},{name:"battery-60",hex:"F007F",version:"1.5.54"},{name:"battery-60-bluetooth",hex:"F0943",version:"2.4.85"},{name:"battery-70",hex:"F0080",version:"1.5.54"},{name:"battery-70-bluetooth",hex:"F0944",version:"2.4.85"},{name:"battery-80",hex:"F0081",version:"1.5.54"},{name:"battery-80-bluetooth",hex:"F0945",version:"2.4.85"},{name:"battery-90",hex:"F0082",version:"1.5.54"},{name:"battery-90-bluetooth",hex:"F0946",version:"2.4.85"},{name:"battery-alert",hex:"F0083",version:"1.5.54"},{name:"battery-alert-bluetooth",hex:"F0947",version:"2.4.85"},{name:"battery-alert-variant",hex:"F10CC",version:"4.3.95"},{name:"battery-alert-variant-outline",hex:"F10CD",version:"4.3.95"},{name:"battery-arrow-down",hex:"F17DE",version:"6.1.95"},{name:"battery-arrow-down-outline",hex:"F17DF",version:"6.1.95"},{name:"battery-arrow-up",hex:"F17E0",version:"6.1.95"},{name:"battery-arrow-up-outline",hex:"F17E1",version:"6.1.95"},{name:"battery-bluetooth",hex:"F0948",version:"2.4.85"},{name:"battery-bluetooth-variant",hex:"F0949",version:"2.4.85"},{name:"battery-charging",hex:"F0084",version:"1.5.54"},{name:"battery-charging-10",hex:"F089C",version:"2.2.43"},{name:"battery-charging-100",hex:"F0085",version:"1.5.54"},{name:"battery-charging-20",hex:"F0086",version:"1.5.54"},{name:"battery-charging-30",hex:"F0087",version:"1.5.54"},{name:"battery-charging-40",hex:"F0088",version:"1.5.54"},{name:"battery-charging-50",hex:"F089D",version:"2.2.43"},{name:"battery-charging-60",hex:"F0089",version:"1.5.54"},{name:"battery-charging-70",hex:"F089E",version:"2.2.43"},{name:"battery-charging-80",hex:"F008A",version:"1.5.54"},{name:"battery-charging-90",hex:"F008B",version:"1.5.54"},{name:"battery-charging-high",hex:"F12A6",version:"4.7.95"},{name:"battery-charging-low",hex:"F12A4",version:"4.7.95"},{name:"battery-charging-medium",hex:"F12A5",version:"4.7.95"},{name:"battery-charging-outline",hex:"F089F",version:"2.2.43"},{name:"battery-charging-wireless",hex:"F0807",version:"2.1.19"},{name:"battery-charging-wireless-10",hex:"F0808",version:"2.1.19"},{name:"battery-charging-wireless-20",hex:"F0809",version:"2.1.19"},{name:"battery-charging-wireless-30",hex:"F080A",version:"2.1.19"},{name:"battery-charging-wireless-40",hex:"F080B",version:"2.1.19"},{name:"battery-charging-wireless-50",hex:"F080C",version:"2.1.19"},{name:"battery-charging-wireless-60",hex:"F080D",version:"2.1.19"},{name:"battery-charging-wireless-70",hex:"F080E",version:"2.1.19"},{name:"battery-charging-wireless-80",hex:"F080F",version:"2.1.19"},{name:"battery-charging-wireless-90",hex:"F0810",version:"2.1.19"},{name:"battery-charging-wireless-alert",hex:"F0811",version:"2.1.19"},{name:"battery-charging-wireless-outline",hex:"F0812",version:"2.1.19"},{name:"battery-check",hex:"F17E2",version:"6.1.95"},{name:"battery-check-outline",hex:"F17E3",version:"6.1.95"},{name:"battery-heart",hex:"F120F",version:"4.6.95"},{name:"battery-heart-outline",hex:"F1210",version:"4.6.95"},{name:"battery-heart-variant",hex:"F1211",version:"4.6.95"},{name:"battery-high",hex:"F12A3",version:"4.7.95"},{name:"battery-lock",hex:"F179C",version:"6.1.95"},{name:"battery-lock-open",hex:"F179D",version:"6.1.95"},{name:"battery-low",hex:"F12A1",version:"4.7.95"},{name:"battery-medium",hex:"F12A2",version:"4.7.95"},{name:"battery-minus",hex:"F17E4",version:"6.1.95"},{name:"battery-minus-outline",hex:"F17E5",version:"6.1.95"},{name:"battery-minus-variant",hex:"F008C",version:"1.5.54"},{name:"battery-negative",hex:"F008D",version:"1.5.54"},{name:"battery-off",hex:"F125D",version:"4.7.95"},{name:"battery-off-outline",hex:"F125E",version:"4.7.95"},{name:"battery-outline",hex:"F008E",version:"1.5.54"},{name:"battery-plus",hex:"F17E6",version:"6.1.95"},{name:"battery-plus-outline",hex:"F17E7",version:"6.1.95"},{name:"battery-plus-variant",hex:"F008F",version:"1.5.54"},{name:"battery-positive",hex:"F0090",version:"1.5.54"},{name:"battery-remove",hex:"F17E8",version:"6.1.95"},{name:"battery-remove-outline",hex:"F17E9",version:"6.1.95"},{name:"battery-sync",hex:"F1834",version:"6.2.95"},{name:"battery-sync-outline",hex:"F1835",version:"6.2.95"},{name:"battery-unknown",hex:"F0091",version:"1.5.54"},{name:"battery-unknown-bluetooth",hex:"F094A",version:"2.4.85"},{name:"beach",hex:"F0092",version:"1.5.54"},{name:"beaker",hex:"F0CEA",version:"3.3.92"},{name:"beaker-alert",hex:"F1229",version:"4.6.95"},{name:"beaker-alert-outline",hex:"F122A",version:"4.6.95"},{name:"beaker-check",hex:"F122B",version:"4.6.95"},{name:"beaker-check-outline",hex:"F122C",version:"4.6.95"},{name:"beaker-minus",hex:"F122D",version:"4.6.95"},{name:"beaker-minus-outline",hex:"F122E",version:"4.6.95"},{name:"beaker-outline",hex:"F0690",version:"1.7.12"},{name:"beaker-plus",hex:"F122F",version:"4.6.95"},{name:"beaker-plus-outline",hex:"F1230",version:"4.6.95"},{name:"beaker-question",hex:"F1231",version:"4.6.95"},{name:"beaker-question-outline",hex:"F1232",version:"4.6.95"},{name:"beaker-remove",hex:"F1233",version:"4.6.95"},{name:"beaker-remove-outline",hex:"F1234",version:"4.6.95"},{name:"bed",hex:"F02E3",version:"1.5.54"},{name:"bed-double",hex:"F0FD4",version:"4.2.95"},{name:"bed-double-outline",hex:"F0FD3",version:"4.2.95"},{name:"bed-empty",hex:"F08A0",version:"2.2.43"},{name:"bed-king",hex:"F0FD2",version:"4.2.95"},{name:"bed-king-outline",hex:"F0FD1",version:"4.2.95"},{name:"bed-outline",hex:"F0099",version:"1.5.54"},{name:"bed-queen",hex:"F0FD0",version:"4.2.95"},{name:"bed-queen-outline",hex:"F0FDB",version:"4.2.95"},{name:"bed-single",hex:"F106D",version:"4.2.95"},{name:"bed-single-outline",hex:"F106E",version:"4.2.95"},{name:"bee",hex:"F0FA1",version:"4.0.96"},{name:"bee-flower",hex:"F0FA2",version:"4.0.96"},{name:"beehive-off-outline",hex:"F13ED",version:"5.1.45"},{name:"beehive-outline",hex:"F10CE",version:"4.3.95"},{name:"beekeeper",hex:"F14E2",version:"5.4.55"},{name:"beer",hex:"F0098",version:"1.5.54"},{name:"beer-outline",hex:"F130C",version:"4.8.95"},{name:"bell",hex:"F009A",version:"1.5.54"},{name:"bell-alert",hex:"F0D59",version:"3.4.93"},{name:"bell-alert-outline",hex:"F0E81",version:"3.7.94"},{name:"bell-badge",hex:"F116B",version:"4.4.95"},{name:"bell-badge-outline",hex:"F0178",version:"1.5.54"},{name:"bell-cancel",hex:"F13E7",version:"5.1.45"},{name:"bell-cancel-outline",hex:"F13E8",version:"5.1.45"},{name:"bell-check",hex:"F11E5",version:"4.5.95"},{name:"bell-check-outline",hex:"F11E6",version:"4.5.95"},{name:"bell-circle",hex:"F0D5A",version:"3.4.93"},{name:"bell-circle-outline",hex:"F0D5B",version:"3.4.93"},{name:"bell-minus",hex:"F13E9",version:"5.1.45"},{name:"bell-minus-outline",hex:"F13EA",version:"5.1.45"},{name:"bell-off",hex:"F009B",version:"1.5.54"},{name:"bell-off-outline",hex:"F0A91",version:"2.7.94"},{name:"bell-outline",hex:"F009C",version:"1.5.54"},{name:"bell-plus",hex:"F009D",version:"1.5.54"},{name:"bell-plus-outline",hex:"F0A92",version:"2.7.94"},{name:"bell-remove",hex:"F13EB",version:"5.1.45"},{name:"bell-remove-outline",hex:"F13EC",version:"5.1.45"},{name:"bell-ring",hex:"F009E",version:"1.5.54"},{name:"bell-ring-outline",hex:"F009F",version:"1.5.54"},{name:"bell-sleep",hex:"F00A0",version:"1.5.54"},{name:"bell-sleep-outline",hex:"F0A93",version:"2.7.94"},{name:"beta",hex:"F00A1",version:"1.5.54"},{name:"betamax",hex:"F09CB",version:"2.5.94"},{name:"biathlon",hex:"F0E14",version:"3.6.95"},{name:"bicycle",hex:"F109C",version:"4.2.95"},{name:"bicycle-basket",hex:"F1235",version:"4.6.95"},{name:"bicycle-cargo",hex:"F189C",version:"6.3.95"},{name:"bicycle-electric",hex:"F15B4",version:"5.6.55"},{name:"bicycle-penny-farthing",hex:"F15E9",version:"5.6.55"},{name:"bike",hex:"F00A3",version:"1.5.54"},{name:"bike-fast",hex:"F111F",version:"4.3.95"},{name:"billboard",hex:"F1010",version:"4.1.95"},{name:"billiards",hex:"F0B61",version:"3.0.39"},{name:"billiards-rack",hex:"F0B62",version:"3.0.39"},{name:"binoculars",hex:"F00A5",version:"1.5.54"},{name:"bio",hex:"F00A6",version:"1.5.54"},{name:"biohazard",hex:"F00A7",version:"1.5.54"},{name:"bird",hex:"F15C6",version:"5.6.55"},{name:"bitbucket",hex:"F00A8",version:"1.5.54"},{name:"bitcoin",hex:"F0813",version:"2.1.19"},{name:"black-mesa",hex:"F00A9",version:"1.5.54"},{name:"blender",hex:"F0CEB",version:"3.3.92"},{name:"blender-outline",hex:"F181A",version:"6.1.95"},{name:"blender-software",hex:"F00AB",version:"1.5.54"},{name:"blinds",hex:"F00AC",version:"1.5.54"},{name:"blinds-open",hex:"F1011",version:"4.1.95"},{name:"block-helper",hex:"F00AD",version:"1.5.54"},{name:"blood-bag",hex:"F0CEC",version:"3.3.92"},{name:"bluetooth",hex:"F00AF",version:"1.5.54"},{name:"bluetooth-audio",hex:"F00B0",version:"1.5.54"},{name:"bluetooth-connect",hex:"F00B1",version:"1.5.54"},{name:"bluetooth-off",hex:"F00B2",version:"1.5.54"},{name:"bluetooth-settings",hex:"F00B3",version:"1.5.54"},{name:"bluetooth-transfer",hex:"F00B4",version:"1.5.54"},{name:"blur",hex:"F00B5",version:"1.5.54"},{name:"blur-linear",hex:"F00B6",version:"1.5.54"},{name:"blur-off",hex:"F00B7",version:"1.5.54"},{name:"blur-radial",hex:"F00B8",version:"1.5.54"},{name:"bolt",hex:"F0DB3",version:"3.5.94"},{name:"bomb",hex:"F0691",version:"1.7.12"},{name:"bomb-off",hex:"F06C5",version:"1.8.36"},{name:"bone",hex:"F00B9",version:"1.5.54"},{name:"book",hex:"F00BA",version:"1.5.54"},{name:"book-account",hex:"F13AD",version:"5.0.45"},{name:"book-account-outline",hex:"F13AE",version:"5.0.45"},{name:"book-alert",hex:"F167C",version:"5.8.55"},{name:"book-alert-outline",hex:"F167D",version:"5.8.55"},{name:"book-alphabet",hex:"F061D",version:"1.6.50"},{name:"book-arrow-down",hex:"F167E",version:"5.8.55"},{name:"book-arrow-down-outline",hex:"F167F",version:"5.8.55"},{name:"book-arrow-left",hex:"F1680",version:"5.8.55"},{name:"book-arrow-left-outline",hex:"F1681",version:"5.8.55"},{name:"book-arrow-right",hex:"F1682",version:"5.8.55"},{name:"book-arrow-right-outline",hex:"F1683",version:"5.8.55"},{name:"book-arrow-up",hex:"F1684",version:"5.8.55"},{name:"book-arrow-up-outline",hex:"F1685",version:"5.8.55"},{name:"book-cancel",hex:"F1686",version:"5.8.55"},{name:"book-cancel-outline",hex:"F1687",version:"5.8.55"},{name:"book-check",hex:"F14F3",version:"5.4.55"},{name:"book-check-outline",hex:"F14F4",version:"5.4.55"},{name:"book-clock",hex:"F1688",version:"5.8.55"},{name:"book-clock-outline",hex:"F1689",version:"5.8.55"},{name:"book-cog",hex:"F168A",version:"5.8.55"},{name:"book-cog-outline",hex:"F168B",version:"5.8.55"},{name:"book-cross",hex:"F00A2",version:"1.5.54"},{name:"book-edit",hex:"F168C",version:"5.8.55"},{name:"book-edit-outline",hex:"F168D",version:"5.8.55"},{name:"book-education",hex:"F16C9",version:"5.8.55"},{name:"book-education-outline",hex:"F16CA",version:"5.8.55"},{name:"book-information-variant",hex:"F106F",version:"4.2.95"},{name:"book-lock",hex:"F079A",version:"2.0.46"},{name:"book-lock-open",hex:"F079B",version:"2.0.46"},{name:"book-lock-open-outline",hex:"F168E",version:"5.8.55"},{name:"book-lock-outline",hex:"F168F",version:"5.8.55"},{name:"book-marker",hex:"F1690",version:"5.8.55"},{name:"book-marker-outline",hex:"F1691",version:"5.8.55"},{name:"book-minus",hex:"F05D9",version:"1.5.54"},{name:"book-minus-multiple",hex:"F0A94",version:"2.7.94"},{name:"book-minus-multiple-outline",hex:"F090B",version:"2.3.50"},{name:"book-minus-outline",hex:"F1692",version:"5.8.55"},{name:"book-multiple",hex:"F00BB",version:"1.5.54"},{name:"book-multiple-outline",hex:"F0436",version:"1.5.54"},{name:"book-music",hex:"F0067",version:"1.5.54"},{name:"book-music-outline",hex:"F1693",version:"5.8.55"},{name:"book-off",hex:"F1694",version:"5.8.55"},{name:"book-off-outline",hex:"F1695",version:"5.8.55"},{name:"book-open",hex:"F00BD",version:"1.5.54"},{name:"book-open-blank-variant",hex:"F00BE",version:"1.5.54"},{name:"book-open-outline",hex:"F0B63",version:"3.0.39"},{name:"book-open-page-variant",hex:"F05DA",version:"1.5.54"},{name:"book-open-page-variant-outline",hex:"F15D6",version:"5.6.55"},{name:"book-open-variant",hex:"F14F7",version:"5.4.55"},{name:"book-outline",hex:"F0B64",version:"3.0.39"},{name:"book-play",hex:"F0E82",version:"3.7.94"},{name:"book-play-outline",hex:"F0E83",version:"3.7.94"},{name:"book-plus",hex:"F05DB",version:"1.5.54"},{name:"book-plus-multiple",hex:"F0A95",version:"2.7.94"},{name:"book-plus-multiple-outline",hex:"F0ADE",version:"2.7.94"},{name:"book-plus-outline",hex:"F1696",version:"5.8.55"},{name:"book-refresh",hex:"F1697",version:"5.8.55"},{name:"book-refresh-outline",hex:"F1698",version:"5.8.55"},{name:"book-remove",hex:"F0A97",version:"2.7.94"},{name:"book-remove-multiple",hex:"F0A96",version:"2.7.94"},{name:"book-remove-multiple-outline",hex:"F04CA",version:"1.5.54"},{name:"book-remove-outline",hex:"F1699",version:"5.8.55"},{name:"book-search",hex:"F0E84",version:"3.7.94"},{name:"book-search-outline",hex:"F0E85",version:"3.7.94"},{name:"book-settings",hex:"F169A",version:"5.8.55"},{name:"book-settings-outline",hex:"F169B",version:"5.8.55"},{name:"book-sync",hex:"F169C",version:"5.8.55"},{name:"book-sync-outline",hex:"F16C8",version:"5.8.55"},{name:"book-variant",hex:"F00BF",version:"1.5.54"},{name:"book-variant-multiple",hex:"F00BC",version:"1.5.54"},{name:"bookmark",hex:"F00C0",version:"1.5.54"},{name:"bookmark-box-multiple",hex:"F196C",version:"6.5.95"},{name:"bookmark-box-multiple-outline",hex:"F196D",version:"6.5.95"},{name:"bookmark-check",hex:"F00C1",version:"1.5.54"},{name:"bookmark-check-outline",hex:"F137B",version:"4.9.95"},{name:"bookmark-minus",hex:"F09CC",version:"2.5.94"},{name:"bookmark-minus-outline",hex:"F09CD",version:"2.5.94"},{name:"bookmark-multiple",hex:"F0E15",version:"3.6.95"},{name:"bookmark-multiple-outline",hex:"F0E16",version:"3.6.95"},{name:"bookmark-music",hex:"F00C2",version:"1.5.54"},{name:"bookmark-music-outline",hex:"F1379",version:"4.9.95"},{name:"bookmark-off",hex:"F09CE",version:"2.5.94"},{name:"bookmark-off-outline",hex:"F09CF",version:"2.5.94"},{name:"bookmark-outline",hex:"F00C3",version:"1.5.54"},{name:"bookmark-plus",hex:"F00C5",version:"1.5.54"},{name:"bookmark-plus-outline",hex:"F00C4",version:"1.5.54"},{name:"bookmark-remove",hex:"F00C6",version:"1.5.54"},{name:"bookmark-remove-outline",hex:"F137A",version:"4.9.95"},{name:"bookshelf",hex:"F125F",version:"4.7.95"},{name:"boom-gate",hex:"F0E86",version:"3.7.94"},{name:"boom-gate-alert",hex:"F0E87",version:"3.7.94"},{name:"boom-gate-alert-outline",hex:"F0E88",version:"3.7.94"},{name:"boom-gate-arrow-down",hex:"F0E89",version:"3.7.94"},{name:"boom-gate-arrow-down-outline",hex:"F0E8A",version:"3.7.94"},{name:"boom-gate-arrow-up",hex:"F0E8C",version:"3.7.94"},{name:"boom-gate-arrow-up-outline",hex:"F0E8D",version:"3.7.94"},{name:"boom-gate-outline",hex:"F0E8B",version:"3.7.94"},{name:"boom-gate-up",hex:"F17F9",version:"6.1.95"},{name:"boom-gate-up-outline",hex:"F17FA",version:"6.1.95"},{name:"boombox",hex:"F05DC",version:"1.5.54"},{name:"boomerang",hex:"F10CF",version:"4.3.95"},{name:"bootstrap",hex:"F06C6",version:"1.8.36"},{name:"border-all",hex:"F00C7",version:"1.5.54"},{name:"border-all-variant",hex:"F08A1",version:"2.2.43"},{name:"border-bottom",hex:"F00C8",version:"1.5.54"},{name:"border-bottom-variant",hex:"F08A2",version:"2.2.43"},{name:"border-color",hex:"F00C9",version:"1.5.54"},{name:"border-horizontal",hex:"F00CA",version:"1.5.54"},{name:"border-inside",hex:"F00CB",version:"1.5.54"},{name:"border-left",hex:"F00CC",version:"1.5.54"},{name:"border-left-variant",hex:"F08A3",version:"2.2.43"},{name:"border-none",hex:"F00CD",version:"1.5.54"},{name:"border-none-variant",hex:"F08A4",version:"2.2.43"},{name:"border-outside",hex:"F00CE",version:"1.5.54"},{name:"border-right",hex:"F00CF",version:"1.5.54"},{name:"border-right-variant",hex:"F08A5",version:"2.2.43"},{name:"border-style",hex:"F00D0",version:"1.5.54"},{name:"border-top",hex:"F00D1",version:"1.5.54"},{name:"border-top-variant",hex:"F08A6",version:"2.2.43"},{name:"border-vertical",hex:"F00D2",version:"1.5.54"},{name:"bottle-soda",hex:"F1070",version:"4.2.95"},{name:"bottle-soda-classic",hex:"F1071",version:"4.2.95"},{name:"bottle-soda-classic-outline",hex:"F1363",version:"4.9.95"},{name:"bottle-soda-outline",hex:"F1072",version:"4.2.95"},{name:"bottle-tonic",hex:"F112E",version:"4.4.95"},{name:"bottle-tonic-outline",hex:"F112F",version:"4.4.95"},{name:"bottle-tonic-plus",hex:"F1130",version:"4.4.95"},{name:"bottle-tonic-plus-outline",hex:"F1131",version:"4.4.95"},{name:"bottle-tonic-skull",hex:"F1132",version:"4.4.95"},{name:"bottle-tonic-skull-outline",hex:"F1133",version:"4.4.95"},{name:"bottle-wine",hex:"F0854",version:"2.1.99"},{name:"bottle-wine-outline",hex:"F1310",version:"4.8.95"},{name:"bow-arrow",hex:"F1841",version:"6.2.95"},{name:"bow-tie",hex:"F0678",version:"1.7.12"},{name:"bowl",hex:"F028E",version:"1.5.54"},{name:"bowl-mix",hex:"F0617",version:"1.6.50"},{name:"bowl-mix-outline",hex:"F02E4",version:"1.5.54"},{name:"bowl-outline",hex:"F02A9",version:"1.5.54"},{name:"bowling",hex:"F00D3",version:"1.5.54"},{name:"box",hex:"F00D4",version:"1.5.54"},{name:"box-cutter",hex:"F00D5",version:"1.5.54"},{name:"box-cutter-off",hex:"F0B4A",version:"2.8.94"},{name:"box-shadow",hex:"F0637",version:"1.6.50"},{name:"boxing-glove",hex:"F0B65",version:"3.0.39"},{name:"braille",hex:"F09D0",version:"2.5.94"},{name:"brain",hex:"F09D1",version:"2.5.94"},{name:"bread-slice",hex:"F0CEE",version:"3.3.92"},{name:"bread-slice-outline",hex:"F0CEF",version:"3.3.92"},{name:"bridge",hex:"F0618",version:"1.6.50"},{name:"briefcase",hex:"F00D6",version:"1.5.54"},{name:"briefcase-account",hex:"F0CF0",version:"3.3.92"},{name:"briefcase-account-outline",hex:"F0CF1",version:"3.3.92"},{name:"briefcase-check",hex:"F00D7",version:"1.5.54"},{name:"briefcase-check-outline",hex:"F131E",version:"4.8.95"},{name:"briefcase-clock",hex:"F10D0",version:"4.3.95"},{name:"briefcase-clock-outline",hex:"F10D1",version:"4.3.95"},{name:"briefcase-download",hex:"F00D8",version:"1.5.54"},{name:"briefcase-download-outline",hex:"F0C3D",version:"3.2.89"},{name:"briefcase-edit",hex:"F0A98",version:"2.7.94"},{name:"briefcase-edit-outline",hex:"F0C3E",version:"3.2.89"},{name:"briefcase-eye",hex:"F17D9",version:"6.1.95"},{name:"briefcase-eye-outline",hex:"F17DA",version:"6.1.95"},{name:"briefcase-minus",hex:"F0A2A",version:"2.6.95"},{name:"briefcase-minus-outline",hex:"F0C3F",version:"3.2.89"},{name:"briefcase-off",hex:"F1658",version:"5.7.55"},{name:"briefcase-off-outline",hex:"F1659",version:"5.7.55"},{name:"briefcase-outline",hex:"F0814",version:"2.1.19"},{name:"briefcase-plus",hex:"F0A2B",version:"2.6.95"},{name:"briefcase-plus-outline",hex:"F0C40",version:"3.2.89"},{name:"briefcase-remove",hex:"F0A2C",version:"2.6.95"},{name:"briefcase-remove-outline",hex:"F0C41",version:"3.2.89"},{name:"briefcase-search",hex:"F0A2D",version:"2.6.95"},{name:"briefcase-search-outline",hex:"F0C42",version:"3.2.89"},{name:"briefcase-upload",hex:"F00D9",version:"1.5.54"},{name:"briefcase-upload-outline",hex:"F0C43",version:"3.2.89"},{name:"briefcase-variant",hex:"F1494",version:"5.3.45"},{name:"briefcase-variant-off",hex:"F165A",version:"5.7.55"},{name:"briefcase-variant-off-outline",hex:"F165B",version:"5.7.55"},{name:"briefcase-variant-outline",hex:"F1495",version:"5.3.45"},{name:"brightness-1",hex:"F00DA",version:"1.5.54"},{name:"brightness-2",hex:"F00DB",version:"1.5.54"},{name:"brightness-3",hex:"F00DC",version:"1.5.54"},{name:"brightness-4",hex:"F00DD",version:"1.5.54"},{name:"brightness-5",hex:"F00DE",version:"1.5.54"},{name:"brightness-6",hex:"F00DF",version:"1.5.54"},{name:"brightness-7",hex:"F00E0",version:"1.5.54"},{name:"brightness-auto",hex:"F00E1",version:"1.5.54"},{name:"brightness-percent",hex:"F0CF2",version:"3.3.92"},{name:"broadcast",hex:"F1720",version:"5.9.55"},{name:"broadcast-off",hex:"F1721",version:"5.9.55"},{name:"broom",hex:"F00E2",version:"1.5.54"},{name:"brush",hex:"F00E3",version:"1.5.54"},{name:"brush-off",hex:"F1771",version:"6.1.95"},{name:"brush-variant",hex:"F1813",version:"6.1.95"},{name:"bucket",hex:"F1415",version:"5.1.45"},{name:"bucket-outline",hex:"F1416",version:"5.1.45"},{name:"buffet",hex:"F0578",version:"1.5.54"},{name:"bug",hex:"F00E4",version:"1.5.54"},{name:"bug-check",hex:"F0A2E",version:"2.6.95"},{name:"bug-check-outline",hex:"F0A2F",version:"2.6.95"},{name:"bug-outline",hex:"F0A30",version:"2.6.95"},{name:"bugle",hex:"F0DB4",version:"3.5.94"},{name:"bulldozer",hex:"F0B22",version:"2.8.94"},{name:"bullet",hex:"F0CF3",version:"3.3.92"},{name:"bulletin-board",hex:"F00E5",version:"1.5.54"},{name:"bullhorn",hex:"F00E6",version:"1.5.54"},{name:"bullhorn-outline",hex:"F0B23",version:"2.8.94"},{name:"bullhorn-variant",hex:"F196E",version:"6.5.95"},{name:"bullhorn-variant-outline",hex:"F196F",version:"6.5.95"},{name:"bullseye",hex:"F05DD",version:"1.5.54"},{name:"bullseye-arrow",hex:"F08C9",version:"2.3.50"},{name:"bulma",hex:"F12E7",version:"4.8.95"},{name:"bunk-bed",hex:"F1302",version:"4.8.95"},{name:"bunk-bed-outline",hex:"F0097",version:"1.5.54"},{name:"bus",hex:"F00E7",version:"1.5.54"},{name:"bus-alert",hex:"F0A99",version:"2.7.94"},{name:"bus-articulated-end",hex:"F079C",version:"2.0.46"},{name:"bus-articulated-front",hex:"F079D",version:"2.0.46"},{name:"bus-clock",hex:"F08CA",version:"2.3.50"},{name:"bus-double-decker",hex:"F079E",version:"2.0.46"},{name:"bus-electric",hex:"F191D",version:"6.4.95"},{name:"bus-marker",hex:"F1212",version:"4.6.95"},{name:"bus-multiple",hex:"F0F3F",version:"3.9.97"},{name:"bus-school",hex:"F079F",version:"2.0.46"},{name:"bus-side",hex:"F07A0",version:"2.0.46"},{name:"bus-stop",hex:"F1012",version:"4.1.95"},{name:"bus-stop-covered",hex:"F1013",version:"4.1.95"},{name:"bus-stop-uncovered",hex:"F1014",version:"4.1.95"},{name:"butterfly",hex:"F1589",version:"5.5.55"},{name:"butterfly-outline",hex:"F158A",version:"5.5.55"},{name:"cabin-a-frame",hex:"F188C",version:"6.2.95"},{name:"cable-data",hex:"F1394",version:"5.0.45"},{name:"cached",hex:"F00E8",version:"1.5.54"},{name:"cactus",hex:"F0DB5",version:"3.5.94"},{name:"cake",hex:"F00E9",version:"1.5.54"},{name:"cake-layered",hex:"F00EA",version:"1.5.54"},{name:"cake-variant",hex:"F00EB",version:"1.5.54"},{name:"cake-variant-outline",hex:"F17F0",version:"6.1.95"},{name:"calculator",hex:"F00EC",version:"1.5.54"},{name:"calculator-variant",hex:"F0A9A",version:"2.7.94"},{name:"calculator-variant-outline",hex:"F15A6",version:"5.5.55"},{name:"calendar",hex:"F00ED",version:"1.5.54"},{name:"calendar-account",hex:"F0ED7",version:"3.8.95"},{name:"calendar-account-outline",hex:"F0ED8",version:"3.8.95"},{name:"calendar-alert",hex:"F0A31",version:"2.6.95"},{name:"calendar-arrow-left",hex:"F1134",version:"4.4.95"},{name:"calendar-arrow-right",hex:"F1135",version:"4.4.95"},{name:"calendar-blank",hex:"F00EE",version:"1.5.54"},{name:"calendar-blank-multiple",hex:"F1073",version:"4.2.95"},{name:"calendar-blank-outline",hex:"F0B66",version:"3.0.39"},{name:"calendar-check",hex:"F00EF",version:"1.5.54"},{name:"calendar-check-outline",hex:"F0C44",version:"3.2.89"},{name:"calendar-clock",hex:"F00F0",version:"1.5.54"},{name:"calendar-clock-outline",hex:"F16E1",version:"5.9.55"},{name:"calendar-collapse-horizontal",hex:"F189D",version:"6.3.95"},{name:"calendar-cursor",hex:"F157B",version:"5.5.55"},{name:"calendar-edit",hex:"F08A7",version:"2.2.43"},{name:"calendar-end",hex:"F166C",version:"5.7.55"},{name:"calendar-expand-horizontal",hex:"F189E",version:"6.3.95"},{name:"calendar-export",hex:"F0B24",version:"2.8.94"},{name:"calendar-heart",hex:"F09D2",version:"2.5.94"},{name:"calendar-import",hex:"F0B25",version:"2.8.94"},{name:"calendar-lock",hex:"F1641",version:"5.7.55"},{name:"calendar-lock-outline",hex:"F1642",version:"5.7.55"},{name:"calendar-minus",hex:"F0D5C",version:"3.4.93"},{name:"calendar-month",hex:"F0E17",version:"3.6.95"},{name:"calendar-month-outline",hex:"F0E18",version:"3.6.95"},{name:"calendar-multiple",hex:"F00F1",version:"1.5.54"},{name:"calendar-multiple-check",hex:"F00F2",version:"1.5.54"},{name:"calendar-multiselect",hex:"F0A32",version:"2.6.95"},{name:"calendar-outline",hex:"F0B67",version:"3.0.39"},{name:"calendar-plus",hex:"F00F3",version:"1.5.54"},{name:"calendar-question",hex:"F0692",version:"1.7.12"},{name:"calendar-range",hex:"F0679",version:"1.7.12"},{name:"calendar-range-outline",hex:"F0B68",version:"3.0.39"},{name:"calendar-refresh",hex:"F01E1",version:"1.5.54"},{name:"calendar-refresh-outline",hex:"F0203",version:"1.5.54"},{name:"calendar-remove",hex:"F00F4",version:"1.5.54"},{name:"calendar-remove-outline",hex:"F0C45",version:"3.2.89"},{name:"calendar-search",hex:"F094C",version:"2.4.85"},{name:"calendar-star",hex:"F09D3",version:"2.5.94"},{name:"calendar-start",hex:"F166D",version:"5.7.55"},{name:"calendar-sync",hex:"F0E8E",version:"3.7.94"},{name:"calendar-sync-outline",hex:"F0E8F",version:"3.7.94"},{name:"calendar-text",hex:"F00F5",version:"1.5.54"},{name:"calendar-text-outline",hex:"F0C46",version:"3.2.89"},{name:"calendar-today",hex:"F00F6",version:"1.5.54"},{name:"calendar-week",hex:"F0A33",version:"2.6.95"},{name:"calendar-week-begin",hex:"F0A34",version:"2.6.95"},{name:"calendar-weekend",hex:"F0ED9",version:"3.8.95"},{name:"calendar-weekend-outline",hex:"F0EDA",version:"3.8.95"},{name:"call-made",hex:"F00F7",version:"1.5.54"},{name:"call-merge",hex:"F00F8",version:"1.5.54"},{name:"call-missed",hex:"F00F9",version:"1.5.54"},{name:"call-received",hex:"F00FA",version:"1.5.54"},{name:"call-split",hex:"F00FB",version:"1.5.54"},{name:"camcorder",hex:"F00FC",version:"1.5.54"},{name:"camcorder-off",hex:"F00FF",version:"1.5.54"},{name:"camera",hex:"F0100",version:"1.5.54"},{name:"camera-account",hex:"F08CB",version:"2.3.50"},{name:"camera-burst",hex:"F0693",version:"1.7.12"},{name:"camera-control",hex:"F0B69",version:"3.0.39"},{name:"camera-document",hex:"F1871",version:"6.2.95"},{name:"camera-document-off",hex:"F1872",version:"6.2.95"},{name:"camera-enhance",hex:"F0101",version:"1.5.54"},{name:"camera-enhance-outline",hex:"F0B6A",version:"3.0.39"},{name:"camera-flip",hex:"F15D9",version:"5.6.55"},{name:"camera-flip-outline",hex:"F15DA",version:"5.6.55"},{name:"camera-front",hex:"F0102",version:"1.5.54"},{name:"camera-front-variant",hex:"F0103",version:"1.5.54"},{name:"camera-gopro",hex:"F07A1",version:"2.0.46"},{name:"camera-image",hex:"F08CC",version:"2.3.50"},{name:"camera-iris",hex:"F0104",version:"1.5.54"},{name:"camera-marker",hex:"F19A7",version:"6.5.95"},{name:"camera-marker-outline",hex:"F19A8",version:"6.5.95"},{name:"camera-metering-center",hex:"F07A2",version:"2.0.46"},{name:"camera-metering-matrix",hex:"F07A3",version:"2.0.46"},{name:"camera-metering-partial",hex:"F07A4",version:"2.0.46"},{name:"camera-metering-spot",hex:"F07A5",version:"2.0.46"},{name:"camera-off",hex:"F05DF",version:"1.5.54"},{name:"camera-off-outline",hex:"F19BF",version:"6.5.95"},{name:"camera-outline",hex:"F0D5D",version:"3.4.93"},{name:"camera-party-mode",hex:"F0105",version:"1.5.54"},{name:"camera-plus",hex:"F0EDB",version:"3.8.95"},{name:"camera-plus-outline",hex:"F0EDC",version:"3.8.95"},{name:"camera-rear",hex:"F0106",version:"1.5.54"},{name:"camera-rear-variant",hex:"F0107",version:"1.5.54"},{name:"camera-retake",hex:"F0E19",version:"3.6.95"},{name:"camera-retake-outline",hex:"F0E1A",version:"3.6.95"},{name:"camera-switch",hex:"F0108",version:"1.5.54"},{name:"camera-switch-outline",hex:"F084A",version:"2.1.99"},{name:"camera-timer",hex:"F0109",version:"1.5.54"},{name:"camera-wireless",hex:"F0DB6",version:"3.5.94"},{name:"camera-wireless-outline",hex:"F0DB7",version:"3.5.94"},{name:"campfire",hex:"F0EDD",version:"3.8.95"},{name:"cancel",hex:"F073A",version:"1.9.32"},{name:"candelabra",hex:"F17D2",version:"6.1.95"},{name:"candelabra-fire",hex:"F17D3",version:"6.1.95"},{name:"candle",hex:"F05E2",version:"1.5.54"},{name:"candy",hex:"F1970",version:"6.5.95"},{name:"candy-off",hex:"F1971",version:"6.5.95"},{name:"candy-off-outline",hex:"F1972",version:"6.5.95"},{name:"candy-outline",hex:"F1973",version:"6.5.95"},{name:"candycane",hex:"F010A",version:"1.5.54"},{name:"cannabis",hex:"F07A6",version:"2.0.46"},{name:"cannabis-off",hex:"F166E",version:"5.7.55"},{name:"caps-lock",hex:"F0A9B",version:"2.7.94"},{name:"car",hex:"F010B",version:"1.5.54"},{name:"car-2-plus",hex:"F1015",version:"4.1.95"},{name:"car-3-plus",hex:"F1016",version:"4.1.95"},{name:"car-arrow-left",hex:"F13B2",version:"5.0.45"},{name:"car-arrow-right",hex:"F13B3",version:"5.0.45"},{name:"car-back",hex:"F0E1B",version:"3.6.95"},{name:"car-battery",hex:"F010C",version:"1.5.54"},{name:"car-brake-abs",hex:"F0C47",version:"3.2.89"},{name:"car-brake-alert",hex:"F0C48",version:"3.2.89"},{name:"car-brake-fluid-level",hex:"F1909",version:"6.4.95"},{name:"car-brake-hold",hex:"F0D5E",version:"3.4.93"},{name:"car-brake-low-pressure",hex:"F190A",version:"6.4.95"},{name:"car-brake-parking",hex:"F0D5F",version:"3.4.93"},{name:"car-brake-retarder",hex:"F1017",version:"4.1.95"},{name:"car-brake-temperature",hex:"F190B",version:"6.4.95"},{name:"car-brake-worn-linings",hex:"F190C",version:"6.4.95"},{name:"car-child-seat",hex:"F0FA3",version:"4.0.96"},{name:"car-clock",hex:"F1974",version:"6.5.95"},{name:"car-clutch",hex:"F1018",version:"4.1.95"},{name:"car-cog",hex:"F13CC",version:"5.1.45"},{name:"car-connected",hex:"F010D",version:"1.5.54"},{name:"car-convertible",hex:"F07A7",version:"2.0.46"},{name:"car-coolant-level",hex:"F1019",version:"4.1.95"},{name:"car-cruise-control",hex:"F0D60",version:"3.4.93"},{name:"car-defrost-front",hex:"F0D61",version:"3.4.93"},{name:"car-defrost-rear",hex:"F0D62",version:"3.4.93"},{name:"car-door",hex:"F0B6B",version:"3.0.39"},{name:"car-door-lock",hex:"F109D",version:"4.2.95"},{name:"car-electric",hex:"F0B6C",version:"3.0.39"},{name:"car-electric-outline",hex:"F15B5",version:"5.6.55"},{name:"car-emergency",hex:"F160F",version:"5.6.55"},{name:"car-esp",hex:"F0C49",version:"3.2.89"},{name:"car-estate",hex:"F07A8",version:"2.0.46"},{name:"car-hatchback",hex:"F07A9",version:"2.0.46"},{name:"car-info",hex:"F11BE",version:"4.5.95"},{name:"car-key",hex:"F0B6D",version:"3.0.39"},{name:"car-lifted-pickup",hex:"F152D",version:"5.4.55"},{name:"car-light-alert",hex:"F190D",version:"6.4.95"},{name:"car-light-dimmed",hex:"F0C4A",version:"3.2.89"},{name:"car-light-fog",hex:"F0C4B",version:"3.2.89"},{name:"car-light-high",hex:"F0C4C",version:"3.2.89"},{name:"car-limousine",hex:"F08CD",version:"2.3.50"},{name:"car-multiple",hex:"F0B6E",version:"3.0.39"},{name:"car-off",hex:"F0E1C",version:"3.6.95"},{name:"car-outline",hex:"F14ED",version:"5.4.55"},{name:"car-parking-lights",hex:"F0D63",version:"3.4.93"},{name:"car-pickup",hex:"F07AA",version:"2.0.46"},{name:"car-seat",hex:"F0FA4",version:"4.0.96"},{name:"car-seat-cooler",hex:"F0FA5",version:"4.0.96"},{name:"car-seat-heater",hex:"F0FA6",version:"4.0.96"},{name:"car-select",hex:"F1879",version:"6.2.95"},{name:"car-settings",hex:"F13CD",version:"5.1.45"},{name:"car-shift-pattern",hex:"F0F40",version:"3.9.97"},{name:"car-side",hex:"F07AB",version:"2.0.46"},{name:"car-speed-limiter",hex:"F190E",version:"6.4.95"},{name:"car-sports",hex:"F07AC",version:"2.0.46"},{name:"car-tire-alert",hex:"F0C4D",version:"3.2.89"},{name:"car-traction-control",hex:"F0D64",version:"3.4.93"},{name:"car-turbocharger",hex:"F101A",version:"4.1.95"},{name:"car-wash",hex:"F010E",version:"1.5.54"},{name:"car-windshield",hex:"F101B",version:"4.1.95"},{name:"car-windshield-outline",hex:"F101C",version:"4.1.95"},{name:"car-wireless",hex:"F1878",version:"6.2.95"},{name:"car-wrench",hex:"F1814",version:"6.1.95"},{name:"carabiner",hex:"F14C0",version:"5.3.45"},{name:"caravan",hex:"F07AD",version:"2.0.46"},{name:"card",hex:"F0B6F",version:"3.0.39"},{name:"card-account-details",hex:"F05D2",version:"1.5.54"},{name:"card-account-details-outline",hex:"F0DAB",version:"3.5.94"},{name:"card-account-details-star",hex:"F02A3",version:"1.5.54"},{name:"card-account-details-star-outline",hex:"F06DB",version:"1.8.36"},{name:"card-account-mail",hex:"F018E",version:"1.5.54"},{name:"card-account-mail-outline",hex:"F0E98",version:"3.7.94"},{name:"card-account-phone",hex:"F0E99",version:"3.7.94"},{name:"card-account-phone-outline",hex:"F0E9A",version:"3.7.94"},{name:"card-bulleted",hex:"F0B70",version:"3.0.39"},{name:"card-bulleted-off",hex:"F0B71",version:"3.0.39"},{name:"card-bulleted-off-outline",hex:"F0B72",version:"3.0.39"},{name:"card-bulleted-outline",hex:"F0B73",version:"3.0.39"},{name:"card-bulleted-settings",hex:"F0B74",version:"3.0.39"},{name:"card-bulleted-settings-outline",hex:"F0B75",version:"3.0.39"},{name:"card-minus",hex:"F1600",version:"5.6.55"},{name:"card-minus-outline",hex:"F1601",version:"5.6.55"},{name:"card-multiple",hex:"F17F1",version:"6.1.95"},{name:"card-multiple-outline",hex:"F17F2",version:"6.1.95"},{name:"card-off",hex:"F1602",version:"5.6.55"},{name:"card-off-outline",hex:"F1603",version:"5.6.55"},{name:"card-outline",hex:"F0B76",version:"3.0.39"},{name:"card-plus",hex:"F11FF",version:"4.6.95"},{name:"card-plus-outline",hex:"F1200",version:"4.6.95"},{name:"card-remove",hex:"F1604",version:"5.6.55"},{name:"card-remove-outline",hex:"F1605",version:"5.6.55"},{name:"card-search",hex:"F1074",version:"4.2.95"},{name:"card-search-outline",hex:"F1075",version:"4.2.95"},{name:"card-text",hex:"F0B77",version:"3.0.39"},{name:"card-text-outline",hex:"F0B78",version:"3.0.39"},{name:"cards",hex:"F0638",version:"1.6.50"},{name:"cards-club",hex:"F08CE",version:"2.3.50"},{name:"cards-club-outline",hex:"F189F",version:"6.3.95"},{name:"cards-diamond",hex:"F08CF",version:"2.3.50"},{name:"cards-diamond-outline",hex:"F101D",version:"4.1.95"},{name:"cards-heart",hex:"F08D0",version:"2.3.50"},{name:"cards-heart-outline",hex:"F18A0",version:"6.3.95"},{name:"cards-outline",hex:"F0639",version:"1.6.50"},{name:"cards-playing",hex:"F18A1",version:"6.3.95"},{name:"cards-playing-club",hex:"F18A2",version:"6.3.95"},{name:"cards-playing-club-multiple",hex:"F18A3",version:"6.3.95"},{name:"cards-playing-club-multiple-outline",hex:"F18A4",version:"6.3.95"},{name:"cards-playing-club-outline",hex:"F18A5",version:"6.3.95"},{name:"cards-playing-diamond",hex:"F18A6",version:"6.3.95"},{name:"cards-playing-diamond-multiple",hex:"F18A7",version:"6.3.95"},{name:"cards-playing-diamond-multiple-outline",hex:"F18A8",version:"6.3.95"},{name:"cards-playing-diamond-outline",hex:"F18A9",version:"6.3.95"},{name:"cards-playing-heart",hex:"F18AA",version:"6.3.95"},{name:"cards-playing-heart-multiple",hex:"F18AB",version:"6.3.95"},{name:"cards-playing-heart-multiple-outline",hex:"F18AC",version:"6.3.95"},{name:"cards-playing-heart-outline",hex:"F18AD",version:"6.3.95"},{name:"cards-playing-outline",hex:"F063A",version:"1.6.50"},{name:"cards-playing-spade",hex:"F18AE",version:"6.3.95"},{name:"cards-playing-spade-multiple",hex:"F18AF",version:"6.3.95"},{name:"cards-playing-spade-multiple-outline",hex:"F18B0",version:"6.3.95"},{name:"cards-playing-spade-outline",hex:"F18B1",version:"6.3.95"},{name:"cards-spade",hex:"F08D1",version:"2.3.50"},{name:"cards-spade-outline",hex:"F18B2",version:"6.3.95"},{name:"cards-variant",hex:"F06C7",version:"1.8.36"},{name:"carrot",hex:"F010F",version:"1.5.54"},{name:"cart",hex:"F0110",version:"1.5.54"},{name:"cart-arrow-down",hex:"F0D66",version:"3.4.93"},{name:"cart-arrow-right",hex:"F0C4E",version:"3.2.89"},{name:"cart-arrow-up",hex:"F0D67",version:"3.4.93"},{name:"cart-check",hex:"F15EA",version:"5.6.55"},{name:"cart-heart",hex:"F18E0",version:"6.3.95"},{name:"cart-minus",hex:"F0D68",version:"3.4.93"},{name:"cart-off",hex:"F066B",version:"1.6.50"},{name:"cart-outline",hex:"F0111",version:"1.5.54"},{name:"cart-plus",hex:"F0112",version:"1.5.54"},{name:"cart-remove",hex:"F0D69",version:"3.4.93"},{name:"cart-variant",hex:"F15EB",version:"5.6.55"},{name:"case-sensitive-alt",hex:"F0113",version:"1.5.54"},{name:"cash",hex:"F0114",version:"1.5.54"},{name:"cash-100",hex:"F0115",version:"1.5.54"},{name:"cash-check",hex:"F14EE",version:"5.4.55"},{name:"cash-fast",hex:"F185C",version:"6.2.95"},{name:"cash-lock",hex:"F14EA",version:"5.4.55"},{name:"cash-lock-open",hex:"F14EB",version:"5.4.55"},{name:"cash-marker",hex:"F0DB8",version:"3.5.94"},{name:"cash-minus",hex:"F1260",version:"4.7.95"},{name:"cash-multiple",hex:"F0116",version:"1.5.54"},{name:"cash-plus",hex:"F1261",version:"4.7.95"},{name:"cash-refund",hex:"F0A9C",version:"2.7.94"},{name:"cash-register",hex:"F0CF4",version:"3.3.92"},{name:"cash-remove",hex:"F1262",version:"4.7.95"},{name:"cassette",hex:"F09D4",version:"2.5.94"},{name:"cast",hex:"F0118",version:"1.5.54"},{name:"cast-audio",hex:"F101E",version:"4.1.95"},{name:"cast-audio-variant",hex:"F1749",version:"6.1.95"},{name:"cast-connected",hex:"F0119",version:"1.5.54"},{name:"cast-education",hex:"F0E1D",version:"3.6.95"},{name:"cast-off",hex:"F078A",version:"1.9.32"},{name:"cast-variant",hex:"F001F",version:"1.5.54"},{name:"castle",hex:"F011A",version:"1.5.54"},{name:"cat",hex:"F011B",version:"1.5.54"},{name:"cctv",hex:"F07AE",version:"2.0.46"},{name:"cctv-off",hex:"F185F",version:"6.2.95"},{name:"ceiling-fan",hex:"F1797",version:"6.1.95"},{name:"ceiling-fan-light",hex:"F1798",version:"6.1.95"},{name:"ceiling-light",hex:"F0769",version:"1.9.32"},{name:"ceiling-light-multiple",hex:"F18DD",version:"6.3.95"},{name:"ceiling-light-multiple-outline",hex:"F18DE",version:"6.3.95"},{name:"ceiling-light-outline",hex:"F17C7",version:"6.1.95"},{name:"cellphone",hex:"F011C",version:"1.5.54"},{name:"cellphone-arrow-down",hex:"F09D5",version:"2.5.94"},{name:"cellphone-basic",hex:"F011E",version:"1.5.54"},{name:"cellphone-charging",hex:"F1397",version:"5.0.45"},{name:"cellphone-check",hex:"F17FD",version:"6.1.95"},{name:"cellphone-cog",hex:"F0951",version:"2.4.85"},{name:"cellphone-dock",hex:"F011F",version:"1.5.54"},{name:"cellphone-information",hex:"F0F41",version:"3.9.97"},{name:"cellphone-key",hex:"F094E",version:"2.4.85"},{name:"cellphone-link",hex:"F0121",version:"1.5.54"},{name:"cellphone-link-off",hex:"F0122",version:"1.5.54"},{name:"cellphone-lock",hex:"F094F",version:"2.4.85"},{name:"cellphone-marker",hex:"F183A",version:"6.2.95"},{name:"cellphone-message",hex:"F08D3",version:"2.3.50"},{name:"cellphone-message-off",hex:"F10D2",version:"4.3.95"},{name:"cellphone-nfc",hex:"F0E90",version:"3.7.94"},{name:"cellphone-nfc-off",hex:"F12D8",version:"4.8.95"},{name:"cellphone-off",hex:"F0950",version:"2.4.85"},{name:"cellphone-play",hex:"F101F",version:"4.1.95"},{name:"cellphone-remove",hex:"F094D",version:"2.4.85"},{name:"cellphone-screenshot",hex:"F0A35",version:"2.6.95"},{name:"cellphone-settings",hex:"F0123",version:"1.5.54"},{name:"cellphone-sound",hex:"F0952",version:"2.4.85"},{name:"cellphone-text",hex:"F08D2",version:"2.3.50"},{name:"cellphone-wireless",hex:"F0815",version:"2.1.19"},{name:"centos",hex:"F111A",version:"4.3.95"},{name:"certificate",hex:"F0124",version:"1.5.54"},{name:"certificate-outline",hex:"F1188",version:"4.4.95"},{name:"chair-rolling",hex:"F0F48",version:"3.9.97"},{name:"chair-school",hex:"F0125",version:"1.5.54"},{name:"chandelier",hex:"F1793",version:"6.1.95"},{name:"charity",hex:"F0C4F",version:"3.2.89"},{name:"chart-arc",hex:"F0126",version:"1.5.54"},{name:"chart-areaspline",hex:"F0127",version:"1.5.54"},{name:"chart-areaspline-variant",hex:"F0E91",version:"3.7.94"},{name:"chart-bar",hex:"F0128",version:"1.5.54"},{name:"chart-bar-stacked",hex:"F076A",version:"1.9.32"},{name:"chart-bell-curve",hex:"F0C50",version:"3.2.89"},{name:"chart-bell-curve-cumulative",hex:"F0FA7",version:"4.0.96"},{name:"chart-box",hex:"F154D",version:"5.4.55"},{name:"chart-box-outline",hex:"F154E",version:"5.4.55"},{name:"chart-box-plus-outline",hex:"F154F",version:"5.4.55"},{name:"chart-bubble",hex:"F05E3",version:"1.5.54"},{name:"chart-donut",hex:"F07AF",version:"2.0.46"},{name:"chart-donut-variant",hex:"F07B0",version:"2.0.46"},{name:"chart-gantt",hex:"F066C",version:"1.6.50"},{name:"chart-histogram",hex:"F0129",version:"1.5.54"},{name:"chart-line",hex:"F012A",version:"1.5.54"},{name:"chart-line-stacked",hex:"F076B",version:"1.9.32"},{name:"chart-line-variant",hex:"F07B1",version:"2.0.46"},{name:"chart-multiline",hex:"F08D4",version:"2.3.50"},{name:"chart-multiple",hex:"F1213",version:"4.6.95"},{name:"chart-pie",hex:"F012B",version:"1.5.54"},{name:"chart-ppf",hex:"F1380",version:"4.9.95"},{name:"chart-sankey",hex:"F11DF",version:"4.5.95"},{name:"chart-sankey-variant",hex:"F11E0",version:"4.5.95"},{name:"chart-scatter-plot",hex:"F0E92",version:"3.7.94"},{name:"chart-scatter-plot-hexbin",hex:"F066D",version:"1.6.50"},{name:"chart-timeline",hex:"F066E",version:"1.6.50"},{name:"chart-timeline-variant",hex:"F0E93",version:"3.7.94"},{name:"chart-timeline-variant-shimmer",hex:"F15B6",version:"5.6.55"},{name:"chart-tree",hex:"F0E94",version:"3.7.94"},{name:"chart-waterfall",hex:"F1918",version:"6.4.95"},{name:"chat",hex:"F0B79",version:"3.0.39"},{name:"chat-alert",hex:"F0B7A",version:"3.0.39"},{name:"chat-alert-outline",hex:"F12C9",version:"4.8.95"},{name:"chat-minus",hex:"F1410",version:"5.1.45"},{name:"chat-minus-outline",hex:"F1413",version:"5.1.45"},{name:"chat-outline",hex:"F0EDE",version:"3.8.95"},{name:"chat-plus",hex:"F140F",version:"5.1.45"},{name:"chat-plus-outline",hex:"F1412",version:"5.1.45"},{name:"chat-processing",hex:"F0B7B",version:"3.0.39"},{name:"chat-processing-outline",hex:"F12CA",version:"4.8.95"},{name:"chat-question",hex:"F1738",version:"5.9.55"},{name:"chat-question-outline",hex:"F1739",version:"5.9.55"},{name:"chat-remove",hex:"F1411",version:"5.1.45"},{name:"chat-remove-outline",hex:"F1414",version:"5.1.45"},{name:"chat-sleep",hex:"F12D1",version:"4.8.95"},{name:"chat-sleep-outline",hex:"F12D2",version:"4.8.95"},{name:"check",hex:"F012C",version:"1.5.54"},{name:"check-all",hex:"F012D",version:"1.5.54"},{name:"check-bold",hex:"F0E1E",version:"3.6.95"},{name:"check-circle",hex:"F05E0",version:"1.5.54"},{name:"check-circle-outline",hex:"F05E1",version:"1.5.54"},{name:"check-decagram",hex:"F0791",version:"2.0.46"},{name:"check-decagram-outline",hex:"F1740",version:"5.9.55"},{name:"check-network",hex:"F0C53",version:"3.2.89"},{name:"check-network-outline",hex:"F0C54",version:"3.2.89"},{name:"check-outline",hex:"F0855",version:"2.1.99"},{name:"check-underline",hex:"F0E1F",version:"3.6.95"},{name:"check-underline-circle",hex:"F0E20",version:"3.6.95"},{name:"check-underline-circle-outline",hex:"F0E21",version:"3.6.95"},{name:"checkbook",hex:"F0A9D",version:"2.7.94"},{name:"checkbox-blank",hex:"F012E",version:"1.5.54"},{name:"checkbox-blank-badge",hex:"F1176",version:"4.4.95"},{name:"checkbox-blank-badge-outline",hex:"F0117",version:"1.5.54"},{name:"checkbox-blank-circle",hex:"F012F",version:"1.5.54"},{name:"checkbox-blank-circle-outline",hex:"F0130",version:"1.5.54"},{name:"checkbox-blank-off",hex:"F12EC",version:"4.8.95"},{name:"checkbox-blank-off-outline",hex:"F12ED",version:"4.8.95"},{name:"checkbox-blank-outline",hex:"F0131",version:"1.5.54"},{name:"checkbox-intermediate",hex:"F0856",version:"2.1.99"},{name:"checkbox-marked",hex:"F0132",version:"1.5.54"},{name:"checkbox-marked-circle",hex:"F0133",version:"1.5.54"},{name:"checkbox-marked-circle-outline",hex:"F0134",version:"1.5.54"},{name:"checkbox-marked-circle-plus-outline",hex:"F1927",version:"6.4.95"},{name:"checkbox-marked-outline",hex:"F0135",version:"1.5.54"},{name:"checkbox-multiple-blank",hex:"F0136",version:"1.5.54"},{name:"checkbox-multiple-blank-circle",hex:"F063B",version:"1.6.50"},{name:"checkbox-multiple-blank-circle-outline",hex:"F063C",version:"1.6.50"},{name:"checkbox-multiple-blank-outline",hex:"F0137",version:"1.5.54"},{name:"checkbox-multiple-marked",hex:"F0138",version:"1.5.54"},{name:"checkbox-multiple-marked-circle",hex:"F063D",version:"1.6.50"},{name:"checkbox-multiple-marked-circle-outline",hex:"F063E",version:"1.6.50"},{name:"checkbox-multiple-marked-outline",hex:"F0139",version:"1.5.54"},{name:"checkbox-multiple-outline",hex:"F0C51",version:"3.2.89"},{name:"checkbox-outline",hex:"F0C52",version:"3.2.89"},{name:"checkerboard",hex:"F013A",version:"1.5.54"},{name:"checkerboard-minus",hex:"F1202",version:"4.6.95"},{name:"checkerboard-plus",hex:"F1201",version:"4.6.95"},{name:"checkerboard-remove",hex:"F1203",version:"4.6.95"},{name:"cheese",hex:"F12B9",version:"4.7.95"},{name:"cheese-off",hex:"F13EE",version:"5.1.45"},{name:"chef-hat",hex:"F0B7C",version:"3.0.39"},{name:"chemical-weapon",hex:"F013B",version:"1.5.54"},{name:"chess-bishop",hex:"F085C",version:"2.1.99"},{name:"chess-king",hex:"F0857",version:"2.1.99"},{name:"chess-knight",hex:"F0858",version:"2.1.99"},{name:"chess-pawn",hex:"F0859",version:"2.1.99"},{name:"chess-queen",hex:"F085A",version:"2.1.99"},{name:"chess-rook",hex:"F085B",version:"2.1.99"},{name:"chevron-double-down",hex:"F013C",version:"1.5.54"},{name:"chevron-double-left",hex:"F013D",version:"1.5.54"},{name:"chevron-double-right",hex:"F013E",version:"1.5.54"},{name:"chevron-double-up",hex:"F013F",version:"1.5.54"},{name:"chevron-down",hex:"F0140",version:"1.5.54"},{name:"chevron-down-box",hex:"F09D6",version:"2.5.94"},{name:"chevron-down-box-outline",hex:"F09D7",version:"2.5.94"},{name:"chevron-down-circle",hex:"F0B26",version:"2.8.94"},{name:"chevron-down-circle-outline",hex:"F0B27",version:"2.8.94"},{name:"chevron-left",hex:"F0141",version:"1.5.54"},{name:"chevron-left-box",hex:"F09D8",version:"2.5.94"},{name:"chevron-left-box-outline",hex:"F09D9",version:"2.5.94"},{name:"chevron-left-circle",hex:"F0B28",version:"2.8.94"},{name:"chevron-left-circle-outline",hex:"F0B29",version:"2.8.94"},{name:"chevron-right",hex:"F0142",version:"1.5.54"},{name:"chevron-right-box",hex:"F09DA",version:"2.5.94"},{name:"chevron-right-box-outline",hex:"F09DB",version:"2.5.94"},{name:"chevron-right-circle",hex:"F0B2A",version:"2.8.94"},{name:"chevron-right-circle-outline",hex:"F0B2B",version:"2.8.94"},{name:"chevron-triple-down",hex:"F0DB9",version:"3.5.94"},{name:"chevron-triple-left",hex:"F0DBA",version:"3.5.94"},{name:"chevron-triple-right",hex:"F0DBB",version:"3.5.94"},{name:"chevron-triple-up",hex:"F0DBC",version:"3.5.94"},{name:"chevron-up",hex:"F0143",version:"1.5.54"},{name:"chevron-up-box",hex:"F09DC",version:"2.5.94"},{name:"chevron-up-box-outline",hex:"F09DD",version:"2.5.94"},{name:"chevron-up-circle",hex:"F0B2C",version:"2.8.94"},{name:"chevron-up-circle-outline",hex:"F0B2D",version:"2.8.94"},{name:"chili-alert",hex:"F17EA",version:"6.1.95"},{name:"chili-alert-outline",hex:"F17EB",version:"6.1.95"},{name:"chili-hot",hex:"F07B2",version:"2.0.46"},{name:"chili-hot-outline",hex:"F17EC",version:"6.1.95"},{name:"chili-medium",hex:"F07B3",version:"2.0.46"},{name:"chili-medium-outline",hex:"F17ED",version:"6.1.95"},{name:"chili-mild",hex:"F07B4",version:"2.0.46"},{name:"chili-mild-outline",hex:"F17EE",version:"6.1.95"},{name:"chili-off",hex:"F1467",version:"5.2.45"},{name:"chili-off-outline",hex:"F17EF",version:"6.1.95"},{name:"chip",hex:"F061A",version:"1.6.50"},{name:"church",hex:"F0144",version:"1.5.54"},{name:"cigar",hex:"F1189",version:"4.4.95"},{name:"cigar-off",hex:"F141B",version:"5.2.45"},{name:"circle",hex:"F0765",version:"1.9.32"},{name:"circle-box",hex:"F15DC",version:"5.6.55"},{name:"circle-box-outline",hex:"F15DD",version:"5.6.55"},{name:"circle-double",hex:"F0E95",version:"3.7.94"},{name:"circle-edit-outline",hex:"F08D5",version:"2.3.50"},{name:"circle-expand",hex:"F0E96",version:"3.7.94"},{name:"circle-half",hex:"F1395",version:"5.0.45"},{name:"circle-half-full",hex:"F1396",version:"5.0.45"},{name:"circle-medium",hex:"F09DE",version:"2.5.94"},{name:"circle-multiple",hex:"F0B38",version:"2.8.94"},{name:"circle-multiple-outline",hex:"F0695",version:"1.7.12"},{name:"circle-off-outline",hex:"F10D3",version:"4.3.95"},{name:"circle-opacity",hex:"F1853",version:"6.2.95"},{name:"circle-outline",hex:"F0766",version:"1.9.32"},{name:"circle-slice-1",hex:"F0A9E",version:"2.7.94"},{name:"circle-slice-2",hex:"F0A9F",version:"2.7.94"},{name:"circle-slice-3",hex:"F0AA0",version:"2.7.94"},{name:"circle-slice-4",hex:"F0AA1",version:"2.7.94"},{name:"circle-slice-5",hex:"F0AA2",version:"2.7.94"},{name:"circle-slice-6",hex:"F0AA3",version:"2.7.94"},{name:"circle-slice-7",hex:"F0AA4",version:"2.7.94"},{name:"circle-slice-8",hex:"F0AA5",version:"2.7.94"},{name:"circle-small",hex:"F09DF",version:"2.5.94"},{name:"circular-saw",hex:"F0E22",version:"3.6.95"},{name:"city",hex:"F0146",version:"1.5.54"},{name:"city-variant",hex:"F0A36",version:"2.6.95"},{name:"city-variant-outline",hex:"F0A37",version:"2.6.95"},{name:"clipboard",hex:"F0147",version:"1.5.54"},{name:"clipboard-account",hex:"F0148",version:"1.5.54"},{name:"clipboard-account-outline",hex:"F0C55",version:"3.2.89"},{name:"clipboard-alert",hex:"F0149",version:"1.5.54"},{name:"clipboard-alert-outline",hex:"F0CF7",version:"3.3.92"},{name:"clipboard-arrow-down",hex:"F014A",version:"1.5.54"},{name:"clipboard-arrow-down-outline",hex:"F0C56",version:"3.2.89"},{name:"clipboard-arrow-left",hex:"F014B",version:"1.5.54"},{name:"clipboard-arrow-left-outline",hex:"F0CF8",version:"3.3.92"},{name:"clipboard-arrow-right",hex:"F0CF9",version:"3.3.92"},{name:"clipboard-arrow-right-outline",hex:"F0CFA",version:"3.3.92"},{name:"clipboard-arrow-up",hex:"F0C57",version:"3.2.89"},{name:"clipboard-arrow-up-outline",hex:"F0C58",version:"3.2.89"},{name:"clipboard-check",hex:"F014E",version:"1.5.54"},{name:"clipboard-check-multiple",hex:"F1263",version:"4.7.95"},{name:"clipboard-check-multiple-outline",hex:"F1264",version:"4.7.95"},{name:"clipboard-check-outline",hex:"F08A8",version:"2.2.43"},{name:"clipboard-clock",hex:"F16E2",version:"5.9.55"},{name:"clipboard-clock-outline",hex:"F16E3",version:"5.9.55"},{name:"clipboard-edit",hex:"F14E5",version:"5.4.55"},{name:"clipboard-edit-outline",hex:"F14E6",version:"5.4.55"},{name:"clipboard-file",hex:"F1265",version:"4.7.95"},{name:"clipboard-file-outline",hex:"F1266",version:"4.7.95"},{name:"clipboard-flow",hex:"F06C8",version:"1.8.36"},{name:"clipboard-flow-outline",hex:"F1117",version:"4.3.95"},{name:"clipboard-list",hex:"F10D4",version:"4.3.95"},{name:"clipboard-list-outline",hex:"F10D5",version:"4.3.95"},{name:"clipboard-minus",hex:"F1618",version:"5.7.55"},{name:"clipboard-minus-outline",hex:"F1619",version:"5.7.55"},{name:"clipboard-multiple",hex:"F1267",version:"4.7.95"},{name:"clipboard-multiple-outline",hex:"F1268",version:"4.7.95"},{name:"clipboard-off",hex:"F161A",version:"5.7.55"},{name:"clipboard-off-outline",hex:"F161B",version:"5.7.55"},{name:"clipboard-outline",hex:"F014C",version:"1.5.54"},{name:"clipboard-play",hex:"F0C59",version:"3.2.89"},{name:"clipboard-play-multiple",hex:"F1269",version:"4.7.95"},{name:"clipboard-play-multiple-outline",hex:"F126A",version:"4.7.95"},{name:"clipboard-play-outline",hex:"F0C5A",version:"3.2.89"},{name:"clipboard-plus",hex:"F0751",version:"1.9.32"},{name:"clipboard-plus-outline",hex:"F131F",version:"4.8.95"},{name:"clipboard-pulse",hex:"F085D",version:"2.1.99"},{name:"clipboard-pulse-outline",hex:"F085E",version:"2.1.99"},{name:"clipboard-remove",hex:"F161C",version:"5.7.55"},{name:"clipboard-remove-outline",hex:"F161D",version:"5.7.55"},{name:"clipboard-search",hex:"F161E",version:"5.7.55"},{name:"clipboard-search-outline",hex:"F161F",version:"5.7.55"},{name:"clipboard-text",hex:"F014D",version:"1.5.54"},{name:"clipboard-text-clock",hex:"F18F9",version:"6.3.95"},{name:"clipboard-text-clock-outline",hex:"F18FA",version:"6.3.95"},{name:"clipboard-text-multiple",hex:"F126B",version:"4.7.95"},{name:"clipboard-text-multiple-outline",hex:"F126C",version:"4.7.95"},{name:"clipboard-text-off",hex:"F1620",version:"5.7.55"},{name:"clipboard-text-off-outline",hex:"F1621",version:"5.7.55"},{name:"clipboard-text-outline",hex:"F0A38",version:"2.6.95"},{name:"clipboard-text-play",hex:"F0C5B",version:"3.2.89"},{name:"clipboard-text-play-outline",hex:"F0C5C",version:"3.2.89"},{name:"clipboard-text-search",hex:"F1622",version:"5.7.55"},{name:"clipboard-text-search-outline",hex:"F1623",version:"5.7.55"},{name:"clippy",hex:"F014F",version:"1.5.54"},{name:"clock",hex:"F0954",version:"2.4.85"},{name:"clock-alert",hex:"F0955",version:"2.4.85"},{name:"clock-alert-outline",hex:"F05CE",version:"1.5.54"},{name:"clock-check",hex:"F0FA8",version:"4.0.96"},{name:"clock-check-outline",hex:"F0FA9",version:"4.0.96"},{name:"clock-digital",hex:"F0E97",version:"3.7.94"},{name:"clock-edit",hex:"F19BA",version:"6.5.95"},{name:"clock-edit-outline",hex:"F19BB",version:"6.5.95"},{name:"clock-end",hex:"F0151",version:"1.5.54"},{name:"clock-fast",hex:"F0152",version:"1.5.54"},{name:"clock-in",hex:"F0153",version:"1.5.54"},{name:"clock-minus",hex:"F1863",version:"6.2.95"},{name:"clock-minus-outline",hex:"F1864",version:"6.2.95"},{name:"clock-out",hex:"F0154",version:"1.5.54"},{name:"clock-outline",hex:"F0150",version:"1.5.54"},{name:"clock-plus",hex:"F1861",version:"6.2.95"},{name:"clock-plus-outline",hex:"F1862",version:"6.2.95"},{name:"clock-remove",hex:"F1865",version:"6.2.95"},{name:"clock-remove-outline",hex:"F1866",version:"6.2.95"},{name:"clock-start",hex:"F0155",version:"1.5.54"},{name:"clock-time-eight",hex:"F1446",version:"5.2.45"},{name:"clock-time-eight-outline",hex:"F1452",version:"5.2.45"},{name:"clock-time-eleven",hex:"F1449",version:"5.2.45"},{name:"clock-time-eleven-outline",hex:"F1455",version:"5.2.45"},{name:"clock-time-five",hex:"F1443",version:"5.2.45"},{name:"clock-time-five-outline",hex:"F144F",version:"5.2.45"},{name:"clock-time-four",hex:"F1442",version:"5.2.45"},{name:"clock-time-four-outline",hex:"F144E",version:"5.2.45"},{name:"clock-time-nine",hex:"F1447",version:"5.2.45"},{name:"clock-time-nine-outline",hex:"F1453",version:"5.2.45"},{name:"clock-time-one",hex:"F143F",version:"5.2.45"},{name:"clock-time-one-outline",hex:"F144B",version:"5.2.45"},{name:"clock-time-seven",hex:"F1445",version:"5.2.45"},{name:"clock-time-seven-outline",hex:"F1451",version:"5.2.45"},{name:"clock-time-six",hex:"F1444",version:"5.2.45"},{name:"clock-time-six-outline",hex:"F1450",version:"5.2.45"},{name:"clock-time-ten",hex:"F1448",version:"5.2.45"},{name:"clock-time-ten-outline",hex:"F1454",version:"5.2.45"},{name:"clock-time-three",hex:"F1441",version:"5.2.45"},{name:"clock-time-three-outline",hex:"F144D",version:"5.2.45"},{name:"clock-time-twelve",hex:"F144A",version:"5.2.45"},{name:"clock-time-twelve-outline",hex:"F1456",version:"5.2.45"},{name:"clock-time-two",hex:"F1440",version:"5.2.45"},{name:"clock-time-two-outline",hex:"F144C",version:"5.2.45"},{name:"close",hex:"F0156",version:"1.5.54"},{name:"close-box",hex:"F0157",version:"1.5.54"},{name:"close-box-multiple",hex:"F0C5D",version:"3.2.89"},{name:"close-box-multiple-outline",hex:"F0C5E",version:"3.2.89"},{name:"close-box-outline",hex:"F0158",version:"1.5.54"},{name:"close-circle",hex:"F0159",version:"1.5.54"},{name:"close-circle-multiple",hex:"F062A",version:"1.6.50"},{name:"close-circle-multiple-outline",hex:"F0883",version:"2.1.99"},{name:"close-circle-outline",hex:"F015A",version:"1.5.54"},{name:"close-network",hex:"F015B",version:"1.5.54"},{name:"close-network-outline",hex:"F0C5F",version:"3.2.89"},{name:"close-octagon",hex:"F015C",version:"1.5.54"},{name:"close-octagon-outline",hex:"F015D",version:"1.5.54"},{name:"close-outline",hex:"F06C9",version:"1.8.36"},{name:"close-thick",hex:"F1398",version:"5.0.45"},{name:"closed-caption",hex:"F015E",version:"1.5.54"},{name:"closed-caption-outline",hex:"F0DBD",version:"3.5.94"},{name:"cloud",hex:"F015F",version:"1.5.54"},{name:"cloud-alert",hex:"F09E0",version:"2.5.94"},{name:"cloud-braces",hex:"F07B5",version:"2.0.46"},{name:"cloud-check",hex:"F0160",version:"1.5.54"},{name:"cloud-check-outline",hex:"F12CC",version:"4.8.95"},{name:"cloud-circle",hex:"F0161",version:"1.5.54"},{name:"cloud-download",hex:"F0162",version:"1.5.54"},{name:"cloud-download-outline",hex:"F0B7D",version:"3.0.39"},{name:"cloud-lock",hex:"F11F1",version:"4.5.95"},{name:"cloud-lock-outline",hex:"F11F2",version:"4.5.95"},{name:"cloud-off-outline",hex:"F0164",version:"1.5.54"},{name:"cloud-outline",hex:"F0163",version:"1.5.54"},{name:"cloud-print",hex:"F0165",version:"1.5.54"},{name:"cloud-print-outline",hex:"F0166",version:"1.5.54"},{name:"cloud-question",hex:"F0A39",version:"2.6.95"},{name:"cloud-refresh",hex:"F052A",version:"1.5.54"},{name:"cloud-search",hex:"F0956",version:"2.4.85"},{name:"cloud-search-outline",hex:"F0957",version:"2.4.85"},{name:"cloud-sync",hex:"F063F",version:"1.6.50"},{name:"cloud-sync-outline",hex:"F12D6",version:"4.8.95"},{name:"cloud-tags",hex:"F07B6",version:"2.0.46"},{name:"cloud-upload",hex:"F0167",version:"1.5.54"},{name:"cloud-upload-outline",hex:"F0B7E",version:"3.0.39"},{name:"clover",hex:"F0816",version:"2.1.19"},{name:"coach-lamp",hex:"F1020",version:"4.1.95"},{name:"coat-rack",hex:"F109E",version:"4.2.95"},{name:"code-array",hex:"F0168",version:"1.5.54"},{name:"code-braces",hex:"F0169",version:"1.5.54"},{name:"code-braces-box",hex:"F10D6",version:"4.3.95"},{name:"code-brackets",hex:"F016A",version:"1.5.54"},{name:"code-equal",hex:"F016B",version:"1.5.54"},{name:"code-greater-than",hex:"F016C",version:"1.5.54"},{name:"code-greater-than-or-equal",hex:"F016D",version:"1.5.54"},{name:"code-json",hex:"F0626",version:"1.6.50"},{name:"code-less-than",hex:"F016E",version:"1.5.54"},{name:"code-less-than-or-equal",hex:"F016F",version:"1.5.54"},{name:"code-not-equal",hex:"F0170",version:"1.5.54"},{name:"code-not-equal-variant",hex:"F0171",version:"1.5.54"},{name:"code-parentheses",hex:"F0172",version:"1.5.54"},{name:"code-parentheses-box",hex:"F10D7",version:"4.3.95"},{name:"code-string",hex:"F0173",version:"1.5.54"},{name:"code-tags",hex:"F0174",version:"1.5.54"},{name:"code-tags-check",hex:"F0694",version:"1.7.12"},{name:"codepen",hex:"F0175",version:"1.5.54"},{name:"coffee",hex:"F0176",version:"1.5.54"},{name:"coffee-maker",hex:"F109F",version:"4.2.95"},{name:"coffee-maker-check",hex:"F1931",version:"6.4.95"},{name:"coffee-maker-check-outline",hex:"F1932",version:"6.4.95"},{name:"coffee-maker-outline",hex:"F181B",version:"6.1.95"},{name:"coffee-off",hex:"F0FAA",version:"3.9.97"},{name:"coffee-off-outline",hex:"F0FAB",version:"3.9.97"},{name:"coffee-outline",hex:"F06CA",version:"1.8.36"},{name:"coffee-to-go",hex:"F0177",version:"1.5.54"},{name:"coffee-to-go-outline",hex:"F130E",version:"4.8.95"},{name:"coffin",hex:"F0B7F",version:"3.0.39"},{name:"cog",hex:"F0493",version:"1.5.54"},{name:"cog-box",hex:"F0494",version:"1.5.54"},{name:"cog-clockwise",hex:"F11DD",version:"4.5.95"},{name:"cog-counterclockwise",hex:"F11DE",version:"4.5.95"},{name:"cog-off",hex:"F13CE",version:"5.1.45"},{name:"cog-off-outline",hex:"F13CF",version:"5.1.45"},{name:"cog-outline",hex:"F08BB",version:"2.2.43"},{name:"cog-pause",hex:"F1933",version:"6.4.95"},{name:"cog-pause-outline",hex:"F1934",version:"6.4.95"},{name:"cog-play",hex:"F1935",version:"6.4.95"},{name:"cog-play-outline",hex:"F1936",version:"6.4.95"},{name:"cog-refresh",hex:"F145E",version:"5.2.45"},{name:"cog-refresh-outline",hex:"F145F",version:"5.2.45"},{name:"cog-stop",hex:"F1937",version:"6.4.95"},{name:"cog-stop-outline",hex:"F1938",version:"6.4.95"},{name:"cog-sync",hex:"F1460",version:"5.2.45"},{name:"cog-sync-outline",hex:"F1461",version:"5.2.45"},{name:"cog-transfer",hex:"F105B",version:"4.1.95"},{name:"cog-transfer-outline",hex:"F105C",version:"4.1.95"},{name:"cogs",hex:"F08D6",version:"2.3.50"},{name:"collage",hex:"F0640",version:"1.6.50"},{name:"collapse-all",hex:"F0AA6",version:"2.7.94"},{name:"collapse-all-outline",hex:"F0AA7",version:"2.7.94"},{name:"color-helper",hex:"F0179",version:"1.5.54"},{name:"comma",hex:"F0E23",version:"3.6.95"},{name:"comma-box",hex:"F0E2B",version:"3.6.95"},{name:"comma-box-outline",hex:"F0E24",version:"3.6.95"},{name:"comma-circle",hex:"F0E25",version:"3.6.95"},{name:"comma-circle-outline",hex:"F0E26",version:"3.6.95"},{name:"comment",hex:"F017A",version:"1.5.54"},{name:"comment-account",hex:"F017B",version:"1.5.54"},{name:"comment-account-outline",hex:"F017C",version:"1.5.54"},{name:"comment-alert",hex:"F017D",version:"1.5.54"},{name:"comment-alert-outline",hex:"F017E",version:"1.5.54"},{name:"comment-arrow-left",hex:"F09E1",version:"2.5.94"},{name:"comment-arrow-left-outline",hex:"F09E2",version:"2.5.94"},{name:"comment-arrow-right",hex:"F09E3",version:"2.5.94"},{name:"comment-arrow-right-outline",hex:"F09E4",version:"2.5.94"},{name:"comment-bookmark",hex:"F15AE",version:"5.5.55"},{name:"comment-bookmark-outline",hex:"F15AF",version:"5.5.55"},{name:"comment-check",hex:"F017F",version:"1.5.54"},{name:"comment-check-outline",hex:"F0180",version:"1.5.54"},{name:"comment-edit",hex:"F11BF",version:"4.5.95"},{name:"comment-edit-outline",hex:"F12C4",version:"4.8.95"},{name:"comment-eye",hex:"F0A3A",version:"2.6.95"},{name:"comment-eye-outline",hex:"F0A3B",version:"2.6.95"},{name:"comment-flash",hex:"F15B0",version:"5.5.55"},{name:"comment-flash-outline",hex:"F15B1",version:"5.5.55"},{name:"comment-minus",hex:"F15DF",version:"5.6.55"},{name:"comment-minus-outline",hex:"F15E0",version:"5.6.55"},{name:"comment-multiple",hex:"F085F",version:"2.1.99"},{name:"comment-multiple-outline",hex:"F0181",version:"1.5.54"},{name:"comment-off",hex:"F15E1",version:"5.6.55"},{name:"comment-off-outline",hex:"F15E2",version:"5.6.55"},{name:"comment-outline",hex:"F0182",version:"1.5.54"},{name:"comment-plus",hex:"F09E5",version:"2.5.94"},{name:"comment-plus-outline",hex:"F0183",version:"1.5.54"},{name:"comment-processing",hex:"F0184",version:"1.5.54"},{name:"comment-processing-outline",hex:"F0185",version:"1.5.54"},{name:"comment-question",hex:"F0817",version:"2.1.19"},{name:"comment-question-outline",hex:"F0186",version:"1.5.54"},{name:"comment-quote",hex:"F1021",version:"4.1.95"},{name:"comment-quote-outline",hex:"F1022",version:"4.1.95"},{name:"comment-remove",hex:"F05DE",version:"1.5.54"},{name:"comment-remove-outline",hex:"F0187",version:"1.5.54"},{name:"comment-search",hex:"F0A3C",version:"2.6.95"},{name:"comment-search-outline",hex:"F0A3D",version:"2.6.95"},{name:"comment-text",hex:"F0188",version:"1.5.54"},{name:"comment-text-multiple",hex:"F0860",version:"2.1.99"},{name:"comment-text-multiple-outline",hex:"F0861",version:"2.1.99"},{name:"comment-text-outline",hex:"F0189",version:"1.5.54"},{name:"compare",hex:"F018A",version:"1.5.54"},{name:"compare-horizontal",hex:"F1492",version:"5.3.45"},{name:"compare-remove",hex:"F18B3",version:"6.3.95"},{name:"compare-vertical",hex:"F1493",version:"5.3.45"},{name:"compass",hex:"F018B",version:"1.5.54"},{name:"compass-off",hex:"F0B80",version:"3.0.39"},{name:"compass-off-outline",hex:"F0B81",version:"3.0.39"},{name:"compass-outline",hex:"F018C",version:"1.5.54"},{name:"compass-rose",hex:"F1382",version:"4.9.95"},{name:"cone",hex:"F194C",version:"6.4.95"},{name:"cone-off",hex:"F194D",version:"6.4.95"},{name:"connection",hex:"F1616",version:"5.6.55"},{name:"console",hex:"F018D",version:"1.5.54"},{name:"console-line",hex:"F07B7",version:"2.0.46"},{name:"console-network",hex:"F08A9",version:"2.2.43"},{name:"console-network-outline",hex:"F0C60",version:"3.2.89"},{name:"consolidate",hex:"F10D8",version:"4.3.95"},{name:"contactless-payment",hex:"F0D6A",version:"3.4.93"},{name:"contactless-payment-circle",hex:"F0321",version:"1.5.54"},{name:"contactless-payment-circle-outline",hex:"F0408",version:"1.5.54"},{name:"contacts",hex:"F06CB",version:"1.8.36"},{name:"contacts-outline",hex:"F05B8",version:"1.5.54"},{name:"contain",hex:"F0A3E",version:"2.6.95"},{name:"contain-end",hex:"F0A3F",version:"2.6.95"},{name:"contain-start",hex:"F0A40",version:"2.6.95"},{name:"content-copy",hex:"F018F",version:"1.5.54"},{name:"content-cut",hex:"F0190",version:"1.5.54"},{name:"content-duplicate",hex:"F0191",version:"1.5.54"},{name:"content-paste",hex:"F0192",version:"1.5.54"},{name:"content-save",hex:"F0193",version:"1.5.54"},{name:"content-save-alert",hex:"F0F42",version:"3.9.97"},{name:"content-save-alert-outline",hex:"F0F43",version:"3.9.97"},{name:"content-save-all",hex:"F0194",version:"1.5.54"},{name:"content-save-all-outline",hex:"F0F44",version:"3.9.97"},{name:"content-save-check",hex:"F18EA",version:"6.3.95"},{name:"content-save-check-outline",hex:"F18EB",version:"6.3.95"},{name:"content-save-cog",hex:"F145B",version:"5.2.45"},{name:"content-save-cog-outline",hex:"F145C",version:"5.2.45"},{name:"content-save-edit",hex:"F0CFB",version:"3.3.92"},{name:"content-save-edit-outline",hex:"F0CFC",version:"3.3.92"},{name:"content-save-move",hex:"F0E27",version:"3.6.95"},{name:"content-save-move-outline",hex:"F0E28",version:"3.6.95"},{name:"content-save-off",hex:"F1643",version:"5.7.55"},{name:"content-save-off-outline",hex:"F1644",version:"5.7.55"},{name:"content-save-outline",hex:"F0818",version:"2.1.19"},{name:"content-save-settings",hex:"F061B",version:"1.6.50"},{name:"content-save-settings-outline",hex:"F0B2E",version:"2.8.94"},{name:"contrast",hex:"F0195",version:"1.5.54"},{name:"contrast-box",hex:"F0196",version:"1.5.54"},{name:"contrast-circle",hex:"F0197",version:"1.5.54"},{name:"controller-classic",hex:"F0B82",version:"3.0.39"},{name:"controller-classic-outline",hex:"F0B83",version:"3.0.39"},{name:"cookie",hex:"F0198",version:"1.5.54"},{name:"cookie-alert",hex:"F16D0",version:"5.8.55"},{name:"cookie-alert-outline",hex:"F16D1",version:"5.8.55"},{name:"cookie-check",hex:"F16D2",version:"5.8.55"},{name:"cookie-check-outline",hex:"F16D3",version:"5.8.55"},{name:"cookie-clock",hex:"F16E4",version:"5.9.55"},{name:"cookie-clock-outline",hex:"F16E5",version:"5.9.55"},{name:"cookie-cog",hex:"F16D4",version:"5.8.55"},{name:"cookie-cog-outline",hex:"F16D5",version:"5.8.55"},{name:"cookie-edit",hex:"F16E6",version:"5.9.55"},{name:"cookie-edit-outline",hex:"F16E7",version:"5.9.55"},{name:"cookie-lock",hex:"F16E8",version:"5.9.55"},{name:"cookie-lock-outline",hex:"F16E9",version:"5.9.55"},{name:"cookie-minus",hex:"F16DA",version:"5.8.55"},{name:"cookie-minus-outline",hex:"F16DB",version:"5.8.55"},{name:"cookie-off",hex:"F16EA",version:"5.9.55"},{name:"cookie-off-outline",hex:"F16EB",version:"5.9.55"},{name:"cookie-outline",hex:"F16DE",version:"5.8.55"},{name:"cookie-plus",hex:"F16D6",version:"5.8.55"},{name:"cookie-plus-outline",hex:"F16D7",version:"5.8.55"},{name:"cookie-refresh",hex:"F16EC",version:"5.9.55"},{name:"cookie-refresh-outline",hex:"F16ED",version:"5.9.55"},{name:"cookie-remove",hex:"F16D8",version:"5.8.55"},{name:"cookie-remove-outline",hex:"F16D9",version:"5.8.55"},{name:"cookie-settings",hex:"F16DC",version:"5.8.55"},{name:"cookie-settings-outline",hex:"F16DD",version:"5.8.55"},{name:"coolant-temperature",hex:"F03C8",version:"1.5.54"},{name:"copyleft",hex:"F1939",version:"6.4.95"},{name:"copyright",hex:"F05E6",version:"1.5.54"},{name:"cordova",hex:"F0958",version:"2.4.85"},{name:"corn",hex:"F07B8",version:"2.0.46"},{name:"corn-off",hex:"F13EF",version:"5.1.45"},{name:"cosine-wave",hex:"F1479",version:"5.2.45"},{name:"counter",hex:"F0199",version:"1.5.54"},{name:"countertop",hex:"F181C",version:"6.1.95"},{name:"countertop-outline",hex:"F181D",version:"6.1.95"},{name:"cow",hex:"F019A",version:"1.5.54"},{name:"cow-off",hex:"F18FC",version:"6.4.95"},{name:"cpu-32-bit",hex:"F0EDF",version:"3.8.95"},{name:"cpu-64-bit",hex:"F0EE0",version:"3.8.95"},{name:"cradle",hex:"F198B",version:"6.5.95"},{name:"cradle-outline",hex:"F1991",version:"6.5.95"},{name:"crane",hex:"F0862",version:"2.1.99"},{name:"creation",hex:"F0674",version:"1.7.12"},{name:"creative-commons",hex:"F0D6B",version:"3.4.93"},{name:"credit-card",hex:"F0FEF",version:"4.0.96"},{name:"credit-card-check",hex:"F13D0",version:"5.1.45"},{name:"credit-card-check-outline",hex:"F13D1",version:"5.1.45"},{name:"credit-card-chip",hex:"F190F",version:"6.4.95"},{name:"credit-card-chip-outline",hex:"F1910",version:"6.4.95"},{name:"credit-card-clock",hex:"F0EE1",version:"3.8.95"},{name:"credit-card-clock-outline",hex:"F0EE2",version:"3.8.95"},{name:"credit-card-edit",hex:"F17D7",version:"6.1.95"},{name:"credit-card-edit-outline",hex:"F17D8",version:"6.1.95"},{name:"credit-card-fast",hex:"F1911",version:"6.4.95"},{name:"credit-card-fast-outline",hex:"F1912",version:"6.4.95"},{name:"credit-card-lock",hex:"F18E7",version:"6.3.95"},{name:"credit-card-lock-outline",hex:"F18E8",version:"6.3.95"},{name:"credit-card-marker",hex:"F06A8",version:"1.7.12"},{name:"credit-card-marker-outline",hex:"F0DBE",version:"3.5.94"},{name:"credit-card-minus",hex:"F0FAC",version:"4.0.96"},{name:"credit-card-minus-outline",hex:"F0FAD",version:"4.0.96"},{name:"credit-card-multiple",hex:"F0FF0",version:"4.0.96"},{name:"credit-card-multiple-outline",hex:"F019C",version:"1.5.54"},{name:"credit-card-off",hex:"F0FF1",version:"4.0.96"},{name:"credit-card-off-outline",hex:"F05E4",version:"1.5.54"},{name:"credit-card-outline",hex:"F019B",version:"1.5.54"},{name:"credit-card-plus",hex:"F0FF2",version:"4.0.96"},{name:"credit-card-plus-outline",hex:"F0676",version:"1.7.12"},{name:"credit-card-refresh",hex:"F1645",version:"5.7.55"},{name:"credit-card-refresh-outline",hex:"F1646",version:"5.7.55"},{name:"credit-card-refund",hex:"F0FF3",version:"4.0.96"},{name:"credit-card-refund-outline",hex:"F0AA8",version:"2.7.94"},{name:"credit-card-remove",hex:"F0FAE",version:"4.0.96"},{name:"credit-card-remove-outline",hex:"F0FAF",version:"4.0.96"},{name:"credit-card-scan",hex:"F0FF4",version:"4.0.96"},{name:"credit-card-scan-outline",hex:"F019D",version:"1.5.54"},{name:"credit-card-search",hex:"F1647",version:"5.7.55"},{name:"credit-card-search-outline",hex:"F1648",version:"5.7.55"},{name:"credit-card-settings",hex:"F0FF5",version:"4.0.96"},{name:"credit-card-settings-outline",hex:"F08D7",version:"2.3.50"},{name:"credit-card-sync",hex:"F1649",version:"5.7.55"},{name:"credit-card-sync-outline",hex:"F164A",version:"5.7.55"},{name:"credit-card-wireless",hex:"F0802",version:"2.1.19"},{name:"credit-card-wireless-off",hex:"F057A",version:"1.5.54"},{name:"credit-card-wireless-off-outline",hex:"F057B",version:"1.5.54"},{name:"credit-card-wireless-outline",hex:"F0D6C",version:"3.4.93"},{name:"cricket",hex:"F0D6D",version:"3.4.93"},{name:"crop",hex:"F019E",version:"1.5.54"},{name:"crop-free",hex:"F019F",version:"1.5.54"},{name:"crop-landscape",hex:"F01A0",version:"1.5.54"},{name:"crop-portrait",hex:"F01A1",version:"1.5.54"},{name:"crop-rotate",hex:"F0696",version:"1.7.12"},{name:"crop-square",hex:"F01A2",version:"1.5.54"},{name:"cross",hex:"F0953",version:"2.4.85"},{name:"cross-bolnisi",hex:"F0CED",version:"3.3.92"},{name:"cross-celtic",hex:"F0CF5",version:"3.3.92"},{name:"cross-outline",hex:"F0CF6",version:"3.3.92"},{name:"crosshairs",hex:"F01A3",version:"1.5.54"},{name:"crosshairs-gps",hex:"F01A4",version:"1.5.54"},{name:"crosshairs-off",hex:"F0F45",version:"3.9.97"},{name:"crosshairs-question",hex:"F1136",version:"4.4.95"},{name:"crowd",hex:"F1975",version:"6.5.95"},{name:"crown",hex:"F01A5",version:"1.5.54"},{name:"crown-circle",hex:"F17DC",version:"6.1.95"},{name:"crown-circle-outline",hex:"F17DD",version:"6.1.95"},{name:"crown-outline",hex:"F11D0",version:"4.5.95"},{name:"cryengine",hex:"F0959",version:"2.4.85"},{name:"crystal-ball",hex:"F0B2F",version:"2.8.94"},{name:"cube",hex:"F01A6",version:"1.5.54"},{name:"cube-off",hex:"F141C",version:"5.2.45"},{name:"cube-off-outline",hex:"F141D",version:"5.2.45"},{name:"cube-outline",hex:"F01A7",version:"1.5.54"},{name:"cube-scan",hex:"F0B84",version:"3.0.39"},{name:"cube-send",hex:"F01A8",version:"1.5.54"},{name:"cube-unfolded",hex:"F01A9",version:"1.5.54"},{name:"cup",hex:"F01AA",version:"1.5.54"},{name:"cup-off",hex:"F05E5",version:"1.5.54"},{name:"cup-off-outline",hex:"F137D",version:"4.9.95"},{name:"cup-outline",hex:"F130F",version:"4.8.95"},{name:"cup-water",hex:"F01AB",version:"1.5.54"},{name:"cupboard",hex:"F0F46",version:"3.9.97"},{name:"cupboard-outline",hex:"F0F47",version:"3.9.97"},{name:"cupcake",hex:"F095A",version:"2.4.85"},{name:"curling",hex:"F0863",version:"2.1.99"},{name:"currency-bdt",hex:"F0864",version:"2.1.99"},{name:"currency-brl",hex:"F0B85",version:"3.0.39"},{name:"currency-btc",hex:"F01AC",version:"1.5.54"},{name:"currency-cny",hex:"F07BA",version:"2.0.46"},{name:"currency-eth",hex:"F07BB",version:"2.0.46"},{name:"currency-eur",hex:"F01AD",version:"1.5.54"},{name:"currency-eur-off",hex:"F1315",version:"4.8.95"},{name:"currency-gbp",hex:"F01AE",version:"1.5.54"},{name:"currency-ils",hex:"F0C61",version:"3.2.89"},{name:"currency-inr",hex:"F01AF",version:"1.5.54"},{name:"currency-jpy",hex:"F07BC",version:"2.0.46"},{name:"currency-krw",hex:"F07BD",version:"2.0.46"},{name:"currency-kzt",hex:"F0865",version:"2.1.99"},{name:"currency-mnt",hex:"F1512",version:"5.4.55"},{name:"currency-ngn",hex:"F01B0",version:"1.5.54"},{name:"currency-php",hex:"F09E6",version:"2.5.94"},{name:"currency-rial",hex:"F0E9C",version:"3.7.94"},{name:"currency-rub",hex:"F01B1",version:"1.5.54"},{name:"currency-rupee",hex:"F1976",version:"6.5.95"},{name:"currency-sign",hex:"F07BE",version:"2.0.46"},{name:"currency-try",hex:"F01B2",version:"1.5.54"},{name:"currency-twd",hex:"F07BF",version:"2.0.46"},{name:"currency-usd",hex:"F01C1",version:"1.5.54"},{name:"currency-usd-off",hex:"F067A",version:"1.7.12"},{name:"current-ac",hex:"F1480",version:"5.3.45"},{name:"current-dc",hex:"F095C",version:"2.4.85"},{name:"cursor-default",hex:"F01C0",version:"1.5.54"},{name:"cursor-default-click",hex:"F0CFD",version:"3.3.92"},{name:"cursor-default-click-outline",hex:"F0CFE",version:"3.3.92"},{name:"cursor-default-gesture",hex:"F1127",version:"4.3.95"},{name:"cursor-default-gesture-outline",hex:"F1128",version:"4.3.95"},{name:"cursor-default-outline",hex:"F01BF",version:"1.5.54"},{name:"cursor-move",hex:"F01BE",version:"1.5.54"},{name:"cursor-pointer",hex:"F01BD",version:"1.5.54"},{name:"cursor-text",hex:"F05E7",version:"1.5.54"},{name:"curtains",hex:"F1846",version:"6.2.95"},{name:"curtains-closed",hex:"F1847",version:"6.2.95"},{name:"cylinder",hex:"F194E",version:"6.4.95"},{name:"cylinder-off",hex:"F194F",version:"6.4.95"},{name:"dance-ballroom",hex:"F15FB",version:"5.6.55"},{name:"dance-pole",hex:"F1578",version:"5.5.55"},{name:"data-matrix",hex:"F153C",version:"5.4.55"},{name:"data-matrix-edit",hex:"F153D",version:"5.4.55"},{name:"data-matrix-minus",hex:"F153E",version:"5.4.55"},{name:"data-matrix-plus",hex:"F153F",version:"5.4.55"},{name:"data-matrix-remove",hex:"F1540",version:"5.4.55"},{name:"data-matrix-scan",hex:"F1541",version:"5.4.55"},{name:"database",hex:"F01BC",version:"1.5.54"},{name:"database-alert",hex:"F163A",version:"5.7.55"},{name:"database-alert-outline",hex:"F1624",version:"5.7.55"},{name:"database-arrow-down",hex:"F163B",version:"5.7.55"},{name:"database-arrow-down-outline",hex:"F1625",version:"5.7.55"},{name:"database-arrow-left",hex:"F163C",version:"5.7.55"},{name:"database-arrow-left-outline",hex:"F1626",version:"5.7.55"},{name:"database-arrow-right",hex:"F163D",version:"5.7.55"},{name:"database-arrow-right-outline",hex:"F1627",version:"5.7.55"},{name:"database-arrow-up",hex:"F163E",version:"5.7.55"},{name:"database-arrow-up-outline",hex:"F1628",version:"5.7.55"},{name:"database-check",hex:"F0AA9",version:"2.7.94"},{name:"database-check-outline",hex:"F1629",version:"5.7.55"},{name:"database-clock",hex:"F163F",version:"5.7.55"},{name:"database-clock-outline",hex:"F162A",version:"5.7.55"},{name:"database-cog",hex:"F164B",version:"5.7.55"},{name:"database-cog-outline",hex:"F164C",version:"5.7.55"},{name:"database-edit",hex:"F0B86",version:"3.0.39"},{name:"database-edit-outline",hex:"F162B",version:"5.7.55"},{name:"database-export",hex:"F095E",version:"2.4.85"},{name:"database-export-outline",hex:"F162C",version:"5.7.55"},{name:"database-eye",hex:"F191F",version:"6.4.95"},{name:"database-eye-off",hex:"F1920",version:"6.4.95"},{name:"database-eye-off-outline",hex:"F1921",version:"6.4.95"},{name:"database-eye-outline",hex:"F1922",version:"6.4.95"},{name:"database-import",hex:"F095D",version:"2.4.85"},{name:"database-import-outline",hex:"F162D",version:"5.7.55"},{name:"database-lock",hex:"F0AAA",version:"2.7.94"},{name:"database-lock-outline",hex:"F162E",version:"5.7.55"},{name:"database-marker",hex:"F12F6",version:"4.8.95"},{name:"database-marker-outline",hex:"F162F",version:"5.7.55"},{name:"database-minus",hex:"F01BB",version:"1.5.54"},{name:"database-minus-outline",hex:"F1630",version:"5.7.55"},{name:"database-off",hex:"F1640",version:"5.7.55"},{name:"database-off-outline",hex:"F1631",version:"5.7.55"},{name:"database-outline",hex:"F1632",version:"5.7.55"},{name:"database-plus",hex:"F01BA",version:"1.5.54"},{name:"database-plus-outline",hex:"F1633",version:"5.7.55"},{name:"database-refresh",hex:"F05C2",version:"1.5.54"},{name:"database-refresh-outline",hex:"F1634",version:"5.7.55"},{name:"database-remove",hex:"F0D00",version:"3.3.92"},{name:"database-remove-outline",hex:"F1635",version:"5.7.55"},{name:"database-search",hex:"F0866",version:"2.1.99"},{name:"database-search-outline",hex:"F1636",version:"5.7.55"},{name:"database-settings",hex:"F0D01",version:"3.3.92"},{name:"database-settings-outline",hex:"F1637",version:"5.7.55"},{name:"database-sync",hex:"F0CFF",version:"3.3.92"},{name:"database-sync-outline",hex:"F1638",version:"5.7.55"},{name:"death-star",hex:"F08D8",version:"2.3.50"},{name:"death-star-variant",hex:"F08D9",version:"2.3.50"},{name:"deathly-hallows",hex:"F0B87",version:"3.0.39"},{name:"debian",hex:"F08DA",version:"2.3.50"},{name:"debug-step-into",hex:"F01B9",version:"1.5.54"},{name:"debug-step-out",hex:"F01B8",version:"1.5.54"},{name:"debug-step-over",hex:"F01B7",version:"1.5.54"},{name:"decagram",hex:"F076C",version:"1.9.32"},{name:"decagram-outline",hex:"F076D",version:"1.9.32"},{name:"decimal",hex:"F10A1",version:"4.2.95"},{name:"decimal-comma",hex:"F10A2",version:"4.2.95"},{name:"decimal-comma-decrease",hex:"F10A3",version:"4.2.95"},{name:"decimal-comma-increase",hex:"F10A4",version:"4.2.95"},{name:"decimal-decrease",hex:"F01B6",version:"1.5.54"},{name:"decimal-increase",hex:"F01B5",version:"1.5.54"},{name:"delete",hex:"F01B4",version:"1.5.54"},{name:"delete-alert",hex:"F10A5",version:"4.2.95"},{name:"delete-alert-outline",hex:"F10A6",version:"4.2.95"},{name:"delete-circle",hex:"F0683",version:"1.7.12"},{name:"delete-circle-outline",hex:"F0B88",version:"3.0.39"},{name:"delete-clock",hex:"F1556",version:"5.5.55"},{name:"delete-clock-outline",hex:"F1557",version:"5.5.55"},{name:"delete-empty",hex:"F06CC",version:"1.8.36"},{name:"delete-empty-outline",hex:"F0E9D",version:"3.7.94"},{name:"delete-forever",hex:"F05E8",version:"1.5.54"},{name:"delete-forever-outline",hex:"F0B89",version:"3.0.39"},{name:"delete-off",hex:"F10A7",version:"4.2.95"},{name:"delete-off-outline",hex:"F10A8",version:"4.2.95"},{name:"delete-outline",hex:"F09E7",version:"2.5.94"},{name:"delete-restore",hex:"F0819",version:"2.1.19"},{name:"delete-sweep",hex:"F05E9",version:"1.5.54"},{name:"delete-sweep-outline",hex:"F0C62",version:"3.2.89"},{name:"delete-variant",hex:"F01B3",version:"1.5.54"},{name:"delta",hex:"F01C2",version:"1.5.54"},{name:"desk",hex:"F1239",version:"4.6.95"},{name:"desk-lamp",hex:"F095F",version:"2.4.85"},{name:"deskphone",hex:"F01C3",version:"1.5.54"},{name:"desktop-classic",hex:"F07C0",version:"2.0.46"},{name:"desktop-mac",hex:"F01C4",version:"1.5.54"},{name:"desktop-mac-dashboard",hex:"F09E8",version:"2.5.94"},{name:"desktop-tower",hex:"F01C5",version:"1.5.54"},{name:"desktop-tower-monitor",hex:"F0AAB",version:"2.7.94"},{name:"details",hex:"F01C6",version:"1.5.54"},{name:"dev-to",hex:"F0D6E",version:"3.4.93"},{name:"developer-board",hex:"F0697",version:"1.7.12"},{name:"deviantart",hex:"F01C7",version:"1.5.54"},{name:"devices",hex:"F0FB0",version:"4.0.96"},{name:"dharmachakra",hex:"F094B",version:"2.4.85"},{name:"diabetes",hex:"F1126",version:"4.3.95"},{name:"dialpad",hex:"F061C",version:"1.6.50"},{name:"diameter",hex:"F0C63",version:"3.2.89"},{name:"diameter-outline",hex:"F0C64",version:"3.2.89"},{name:"diameter-variant",hex:"F0C65",version:"3.2.89"},{name:"diamond",hex:"F0B8A",version:"3.0.39"},{name:"diamond-outline",hex:"F0B8B",version:"3.0.39"},{name:"diamond-stone",hex:"F01C8",version:"1.5.54"},{name:"dice-1",hex:"F01CA",version:"1.5.54"},{name:"dice-1-outline",hex:"F114A",version:"4.4.95"},{name:"dice-2",hex:"F01CB",version:"1.5.54"},{name:"dice-2-outline",hex:"F114B",version:"4.4.95"},{name:"dice-3",hex:"F01CC",version:"1.5.54"},{name:"dice-3-outline",hex:"F114C",version:"4.4.95"},{name:"dice-4",hex:"F01CD",version:"1.5.54"},{name:"dice-4-outline",hex:"F114D",version:"4.4.95"},{name:"dice-5",hex:"F01CE",version:"1.5.54"},{name:"dice-5-outline",hex:"F114E",version:"4.4.95"},{name:"dice-6",hex:"F01CF",version:"1.5.54"},{name:"dice-6-outline",hex:"F114F",version:"4.4.95"},{name:"dice-d10",hex:"F1153",version:"4.4.95"},{name:"dice-d10-outline",hex:"F076F",version:"1.9.32"},{name:"dice-d12",hex:"F1154",version:"4.4.95"},{name:"dice-d12-outline",hex:"F0867",version:"2.1.99"},{name:"dice-d20",hex:"F1155",version:"4.4.95"},{name:"dice-d20-outline",hex:"F05EA",version:"1.5.54"},{name:"dice-d4",hex:"F1150",version:"4.4.95"},{name:"dice-d4-outline",hex:"F05EB",version:"1.5.54"},{name:"dice-d6",hex:"F1151",version:"4.4.95"},{name:"dice-d6-outline",hex:"F05ED",version:"1.5.54"},{name:"dice-d8",hex:"F1152",version:"4.4.95"},{name:"dice-d8-outline",hex:"F05EC",version:"1.5.54"},{name:"dice-multiple",hex:"F076E",version:"1.9.32"},{name:"dice-multiple-outline",hex:"F1156",version:"4.4.95"},{name:"digital-ocean",hex:"F1237",version:"4.6.95"},{name:"dip-switch",hex:"F07C1",version:"2.0.46"},{name:"directions",hex:"F01D0",version:"1.5.54"},{name:"directions-fork",hex:"F0641",version:"1.6.50"},{name:"disc",hex:"F05EE",version:"1.5.54"},{name:"disc-alert",hex:"F01D1",version:"1.5.54"},{name:"disc-player",hex:"F0960",version:"2.4.85"},{name:"discord",hex:"F066F",version:"1.6.50"},{name:"dishwasher",hex:"F0AAC",version:"2.7.94"},{name:"dishwasher-alert",hex:"F11B8",version:"4.5.95"},{name:"dishwasher-off",hex:"F11B9",version:"4.5.95"},{name:"disqus",hex:"F01D2",version:"1.5.54"},{name:"distribute-horizontal-center",hex:"F11C9",version:"4.5.95"},{name:"distribute-horizontal-left",hex:"F11C8",version:"4.5.95"},{name:"distribute-horizontal-right",hex:"F11CA",version:"4.5.95"},{name:"distribute-vertical-bottom",hex:"F11CB",version:"4.5.95"},{name:"distribute-vertical-center",hex:"F11CC",version:"4.5.95"},{name:"distribute-vertical-top",hex:"F11CD",version:"4.5.95"},{name:"diversify",hex:"F1877",version:"6.2.95"},{name:"diving",hex:"F1977",version:"6.5.95"},{name:"diving-flippers",hex:"F0DBF",version:"3.5.94"},{name:"diving-helmet",hex:"F0DC0",version:"3.5.94"},{name:"diving-scuba",hex:"F0DC1",version:"3.5.94"},{name:"diving-scuba-flag",hex:"F0DC2",version:"3.5.94"},{name:"diving-scuba-tank",hex:"F0DC3",version:"3.5.94"},{name:"diving-scuba-tank-multiple",hex:"F0DC4",version:"3.5.94"},{name:"diving-snorkel",hex:"F0DC5",version:"3.5.94"},{name:"division",hex:"F01D4",version:"1.5.54"},{name:"division-box",hex:"F01D5",version:"1.5.54"},{name:"dlna",hex:"F0A41",version:"2.6.95"},{name:"dna",hex:"F0684",version:"1.7.12"},{name:"dns",hex:"F01D6",version:"1.5.54"},{name:"dns-outline",hex:"F0B8C",version:"3.0.39"},{name:"dock-bottom",hex:"F10A9",version:"4.2.95"},{name:"dock-left",hex:"F10AA",version:"4.2.95"},{name:"dock-right",hex:"F10AB",version:"4.2.95"},{name:"dock-top",hex:"F1513",version:"5.4.55"},{name:"dock-window",hex:"F10AC",version:"4.2.95"},{name:"docker",hex:"F0868",version:"2.1.99"},{name:"doctor",hex:"F0A42",version:"2.6.95"},{name:"dog",hex:"F0A43",version:"2.6.95"},{name:"dog-service",hex:"F0AAD",version:"2.7.94"},{name:"dog-side",hex:"F0A44",version:"2.6.95"},{name:"dog-side-off",hex:"F16EE",version:"5.9.55"},{name:"dolby",hex:"F06B3",version:"1.7.22"},{name:"dolly",hex:"F0E9E",version:"3.7.94"},{name:"dolphin",hex:"F18B4",version:"6.3.95"},{name:"domain",hex:"F01D7",version:"1.5.54"},{name:"domain-off",hex:"F0D6F",version:"3.4.93"},{name:"domain-plus",hex:"F10AD",version:"4.2.95"},{name:"domain-remove",hex:"F10AE",version:"4.2.95"},{name:"dome-light",hex:"F141E",version:"5.2.45"},{name:"domino-mask",hex:"F1023",version:"4.1.95"},{name:"donkey",hex:"F07C2",version:"2.0.46"},{name:"door",hex:"F081A",version:"2.1.19"},{name:"door-closed",hex:"F081B",version:"2.1.19"},{name:"door-closed-lock",hex:"F10AF",version:"4.2.95"},{name:"door-open",hex:"F081C",version:"2.1.19"},{name:"door-sliding",hex:"F181E",version:"6.1.95"},{name:"door-sliding-lock",hex:"F181F",version:"6.1.95"},{name:"door-sliding-open",hex:"F1820",version:"6.1.95"},{name:"doorbell",hex:"F12E6",version:"4.8.95"},{name:"doorbell-video",hex:"F0869",version:"2.1.99"},{name:"dot-net",hex:"F0AAE",version:"2.7.94"},{name:"dots-circle",hex:"F1978",version:"6.5.95"},{name:"dots-grid",hex:"F15FC",version:"5.6.55"},{name:"dots-hexagon",hex:"F15FF",version:"5.6.55"},{name:"dots-horizontal",hex:"F01D8",version:"1.5.54"},{name:"dots-horizontal-circle",hex:"F07C3",version:"2.0.46"},{name:"dots-horizontal-circle-outline",hex:"F0B8D",version:"3.0.39"},{name:"dots-square",hex:"F15FD",version:"5.6.55"},{name:"dots-triangle",hex:"F15FE",version:"5.6.55"},{name:"dots-vertical",hex:"F01D9",version:"1.5.54"},{name:"dots-vertical-circle",hex:"F07C4",version:"2.0.46"},{name:"dots-vertical-circle-outline",hex:"F0B8E",version:"3.0.39"},{name:"download",hex:"F01DA",version:"1.5.54"},{name:"download-box",hex:"F1462",version:"5.2.45"},{name:"download-box-outline",hex:"F1463",version:"5.2.45"},{name:"download-circle",hex:"F1464",version:"5.2.45"},{name:"download-circle-outline",hex:"F1465",version:"5.2.45"},{name:"download-lock",hex:"F1320",version:"4.9.95"},{name:"download-lock-outline",hex:"F1321",version:"4.9.95"},{name:"download-multiple",hex:"F09E9",version:"2.5.94"},{name:"download-network",hex:"F06F4",version:"1.8.36"},{name:"download-network-outline",hex:"F0C66",version:"3.2.89"},{name:"download-off",hex:"F10B0",version:"4.2.95"},{name:"download-off-outline",hex:"F10B1",version:"4.2.95"},{name:"download-outline",hex:"F0B8F",version:"3.0.39"},{name:"drag",hex:"F01DB",version:"1.5.54"},{name:"drag-horizontal",hex:"F01DC",version:"1.5.54"},{name:"drag-horizontal-variant",hex:"F12F0",version:"4.8.95"},{name:"drag-variant",hex:"F0B90",version:"3.0.39"},{name:"drag-vertical",hex:"F01DD",version:"1.5.54"},{name:"drag-vertical-variant",hex:"F12F1",version:"4.8.95"},{name:"drama-masks",hex:"F0D02",version:"3.3.92"},{name:"draw",hex:"F0F49",version:"3.9.97"},{name:"draw-pen",hex:"F19B9",version:"6.5.95"},{name:"drawing",hex:"F01DE",version:"1.5.54"},{name:"drawing-box",hex:"F01DF",version:"1.5.54"},{name:"dresser",hex:"F0F4A",version:"3.9.97"},{name:"dresser-outline",hex:"F0F4B",version:"3.9.97"},{name:"drone",hex:"F01E2",version:"1.5.54"},{name:"dropbox",hex:"F01E3",version:"1.5.54"},{name:"drupal",hex:"F01E4",version:"1.5.54"},{name:"duck",hex:"F01E5",version:"1.5.54"},{name:"dumbbell",hex:"F01E6",version:"1.5.54"},{name:"dump-truck",hex:"F0C67",version:"3.2.89"},{name:"ear-hearing",hex:"F07C5",version:"2.0.46"},{name:"ear-hearing-off",hex:"F0A45",version:"2.6.95"},{name:"earbuds",hex:"F184F",version:"6.2.95"},{name:"earbuds-off",hex:"F1850",version:"6.2.95"},{name:"earbuds-off-outline",hex:"F1851",version:"6.2.95"},{name:"earbuds-outline",hex:"F1852",version:"6.2.95"},{name:"earth",hex:"F01E7",version:"1.5.54"},{name:"earth-arrow-right",hex:"F1311",version:"4.8.95"},{name:"earth-box",hex:"F06CD",version:"1.8.36"},{name:"earth-box-minus",hex:"F1407",version:"5.1.45"},{name:"earth-box-off",hex:"F06CE",version:"1.8.36"},{name:"earth-box-plus",hex:"F1406",version:"5.1.45"},{name:"earth-box-remove",hex:"F1408",version:"5.1.45"},{name:"earth-minus",hex:"F1404",version:"5.1.45"},{name:"earth-off",hex:"F01E8",version:"1.5.54"},{name:"earth-plus",hex:"F1403",version:"5.1.45"},{name:"earth-remove",hex:"F1405",version:"5.1.45"},{name:"egg",hex:"F0AAF",version:"2.7.94"},{name:"egg-easter",hex:"F0AB0",version:"2.7.94"},{name:"egg-fried",hex:"F184A",version:"6.2.95"},{name:"egg-off",hex:"F13F0",version:"5.1.45"},{name:"egg-off-outline",hex:"F13F1",version:"5.1.45"},{name:"egg-outline",hex:"F13F2",version:"5.1.45"},{name:"eiffel-tower",hex:"F156B",version:"5.5.55"},{name:"eight-track",hex:"F09EA",version:"2.5.94"},{name:"eject",hex:"F01EA",version:"1.5.54"},{name:"eject-outline",hex:"F0B91",version:"3.0.39"},{name:"electric-switch",hex:"F0E9F",version:"3.7.94"},{name:"electric-switch-closed",hex:"F10D9",version:"4.3.95"},{name:"electron-framework",hex:"F1024",version:"4.1.95"},{name:"elephant",hex:"F07C6",version:"2.0.46"},{name:"elevation-decline",hex:"F01EB",version:"1.5.54"},{name:"elevation-rise",hex:"F01EC",version:"1.5.54"},{name:"elevator",hex:"F01ED",version:"1.5.54"},{name:"elevator-down",hex:"F12C2",version:"4.8.95"},{name:"elevator-passenger",hex:"F1381",version:"4.9.95"},{name:"elevator-passenger-off",hex:"F1979",version:"6.5.95"},{name:"elevator-passenger-off-outline",hex:"F197A",version:"6.5.95"},{name:"elevator-passenger-outline",hex:"F197B",version:"6.5.95"},{name:"elevator-up",hex:"F12C1",version:"4.8.95"},{name:"ellipse",hex:"F0EA0",version:"3.7.94"},{name:"ellipse-outline",hex:"F0EA1",version:"3.7.94"},{name:"email",hex:"F01EE",version:"1.5.54"},{name:"email-alert",hex:"F06CF",version:"1.8.36"},{name:"email-alert-outline",hex:"F0D42",version:"3.4.93"},{name:"email-box",hex:"F0D03",version:"3.3.92"},{name:"email-check",hex:"F0AB1",version:"2.7.94"},{name:"email-check-outline",hex:"F0AB2",version:"2.7.94"},{name:"email-edit",hex:"F0EE3",version:"3.8.95"},{name:"email-edit-outline",hex:"F0EE4",version:"3.8.95"},{name:"email-fast",hex:"F186F",version:"6.2.95"},{name:"email-fast-outline",hex:"F1870",version:"6.2.95"},{name:"email-lock",hex:"F01F1",version:"1.5.54"},{name:"email-mark-as-unread",hex:"F0B92",version:"3.0.39"},{name:"email-minus",hex:"F0EE5",version:"3.8.95"},{name:"email-minus-outline",hex:"F0EE6",version:"3.8.95"},{name:"email-multiple",hex:"F0EE7",version:"3.8.95"},{name:"email-multiple-outline",hex:"F0EE8",version:"3.8.95"},{name:"email-newsletter",hex:"F0FB1",version:"4.0.96"},{name:"email-off",hex:"F13E3",version:"5.1.45"},{name:"email-off-outline",hex:"F13E4",version:"5.1.45"},{name:"email-open",hex:"F01EF",version:"1.5.54"},{name:"email-open-multiple",hex:"F0EE9",version:"3.8.95"},{name:"email-open-multiple-outline",hex:"F0EEA",version:"3.8.95"},{name:"email-open-outline",hex:"F05EF",version:"1.5.54"},{name:"email-outline",hex:"F01F0",version:"1.5.54"},{name:"email-plus",hex:"F09EB",version:"2.5.94"},{name:"email-plus-outline",hex:"F09EC",version:"2.5.94"},{name:"email-receive",hex:"F10DA",version:"4.3.95"},{name:"email-receive-outline",hex:"F10DB",version:"4.3.95"},{name:"email-remove",hex:"F1661",version:"5.7.55"},{name:"email-remove-outline",hex:"F1662",version:"5.7.55"},{name:"email-seal",hex:"F195B",version:"6.4.95"},{name:"email-seal-outline",hex:"F195C",version:"6.4.95"},{name:"email-search",hex:"F0961",version:"2.4.85"},{name:"email-search-outline",hex:"F0962",version:"2.4.85"},{name:"email-send",hex:"F10DC",version:"4.3.95"},{name:"email-send-outline",hex:"F10DD",version:"4.3.95"},{name:"email-sync",hex:"F12C7",version:"4.8.95"},{name:"email-sync-outline",hex:"F12C8",version:"4.8.95"},{name:"email-variant",hex:"F05F0",version:"1.5.54"},{name:"ember",hex:"F0B30",version:"2.8.94"},{name:"emby",hex:"F06B4",version:"1.7.22"},{name:"emoticon",hex:"F0C68",version:"3.2.89"},{name:"emoticon-angry",hex:"F0C69",version:"3.2.89"},{name:"emoticon-angry-outline",hex:"F0C6A",version:"3.2.89"},{name:"emoticon-confused",hex:"F10DE",version:"4.3.95"},{name:"emoticon-confused-outline",hex:"F10DF",version:"4.3.95"},{name:"emoticon-cool",hex:"F0C6B",version:"3.2.89"},{name:"emoticon-cool-outline",hex:"F01F3",version:"1.5.54"},{name:"emoticon-cry",hex:"F0C6C",version:"3.2.89"},{name:"emoticon-cry-outline",hex:"F0C6D",version:"3.2.89"},{name:"emoticon-dead",hex:"F0C6E",version:"3.2.89"},{name:"emoticon-dead-outline",hex:"F069B",version:"1.7.12"},{name:"emoticon-devil",hex:"F0C6F",version:"3.2.89"},{name:"emoticon-devil-outline",hex:"F01F4",version:"1.5.54"},{name:"emoticon-excited",hex:"F0C70",version:"3.2.89"},{name:"emoticon-excited-outline",hex:"F069C",version:"1.7.12"},{name:"emoticon-frown",hex:"F0F4C",version:"3.9.97"},{name:"emoticon-frown-outline",hex:"F0F4D",version:"3.9.97"},{name:"emoticon-happy",hex:"F0C71",version:"3.2.89"},{name:"emoticon-happy-outline",hex:"F01F5",version:"1.5.54"},{name:"emoticon-kiss",hex:"F0C72",version:"3.2.89"},{name:"emoticon-kiss-outline",hex:"F0C73",version:"3.2.89"},{name:"emoticon-lol",hex:"F1214",version:"4.6.95"},{name:"emoticon-lol-outline",hex:"F1215",version:"4.6.95"},{name:"emoticon-neutral",hex:"F0C74",version:"3.2.89"},{name:"emoticon-neutral-outline",hex:"F01F6",version:"1.5.54"},{name:"emoticon-outline",hex:"F01F2",version:"1.5.54"},{name:"emoticon-poop",hex:"F01F7",version:"1.5.54"},{name:"emoticon-poop-outline",hex:"F0C75",version:"3.2.89"},{name:"emoticon-sad",hex:"F0C76",version:"3.2.89"},{name:"emoticon-sad-outline",hex:"F01F8",version:"1.5.54"},{name:"emoticon-sick",hex:"F157C",version:"5.5.55"},{name:"emoticon-sick-outline",hex:"F157D",version:"5.5.55"},{name:"emoticon-tongue",hex:"F01F9",version:"1.5.54"},{name:"emoticon-tongue-outline",hex:"F0C77",version:"3.2.89"},{name:"emoticon-wink",hex:"F0C78",version:"3.2.89"},{name:"emoticon-wink-outline",hex:"F0C79",version:"3.2.89"},{name:"engine",hex:"F01FA",version:"1.5.54"},{name:"engine-off",hex:"F0A46",version:"2.6.95"},{name:"engine-off-outline",hex:"F0A47",version:"2.6.95"},{name:"engine-outline",hex:"F01FB",version:"1.5.54"},{name:"epsilon",hex:"F10E0",version:"4.3.95"},{name:"equal",hex:"F01FC",version:"1.5.54"},{name:"equal-box",hex:"F01FD",version:"1.5.54"},{name:"equalizer",hex:"F0EA2",version:"3.7.94"},{name:"equalizer-outline",hex:"F0EA3",version:"3.7.94"},{name:"eraser",hex:"F01FE",version:"1.5.54"},{name:"eraser-variant",hex:"F0642",version:"1.6.50"},{name:"escalator",hex:"F01FF",version:"1.5.54"},{name:"escalator-box",hex:"F1399",version:"5.0.45"},{name:"escalator-down",hex:"F12C0",version:"4.8.95"},{name:"escalator-up",hex:"F12BF",version:"4.8.95"},{name:"eslint",hex:"F0C7A",version:"3.2.89"},{name:"et",hex:"F0AB3",version:"2.7.94"},{name:"ethereum",hex:"F086A",version:"2.1.99"},{name:"ethernet",hex:"F0200",version:"1.5.54"},{name:"ethernet-cable",hex:"F0201",version:"1.5.54"},{name:"ethernet-cable-off",hex:"F0202",version:"1.5.54"},{name:"ev-plug-ccs1",hex:"F1519",version:"5.4.55"},{name:"ev-plug-ccs2",hex:"F151A",version:"5.4.55"},{name:"ev-plug-chademo",hex:"F151B",version:"5.4.55"},{name:"ev-plug-tesla",hex:"F151C",version:"5.4.55"},{name:"ev-plug-type1",hex:"F151D",version:"5.4.55"},{name:"ev-plug-type2",hex:"F151E",version:"5.4.55"},{name:"ev-station",hex:"F05F1",version:"1.5.54"},{name:"evernote",hex:"F0204",version:"1.5.54"},{name:"excavator",hex:"F1025",version:"4.1.95"},{name:"exclamation",hex:"F0205",version:"1.5.54"},{name:"exclamation-thick",hex:"F1238",version:"4.6.95"},{name:"exit-run",hex:"F0A48",version:"2.6.95"},{name:"exit-to-app",hex:"F0206",version:"1.5.54"},{name:"expand-all",hex:"F0AB4",version:"2.7.94"},{name:"expand-all-outline",hex:"F0AB5",version:"2.7.94"},{name:"expansion-card",hex:"F08AE",version:"2.2.43"},{name:"expansion-card-variant",hex:"F0FB2",version:"4.0.96"},{name:"exponent",hex:"F0963",version:"2.4.85"},{name:"exponent-box",hex:"F0964",version:"2.4.85"},{name:"export",hex:"F0207",version:"1.5.54"},{name:"export-variant",hex:"F0B93",version:"3.0.39"},{name:"eye",hex:"F0208",version:"1.5.54"},{name:"eye-arrow-left",hex:"F18FD",version:"6.4.95"},{name:"eye-arrow-left-outline",hex:"F18FE",version:"6.4.95"},{name:"eye-arrow-right",hex:"F18FF",version:"6.4.95"},{name:"eye-arrow-right-outline",hex:"F1900",version:"6.4.95"},{name:"eye-check",hex:"F0D04",version:"3.3.92"},{name:"eye-check-outline",hex:"F0D05",version:"3.3.92"},{name:"eye-circle",hex:"F0B94",version:"3.0.39"},{name:"eye-circle-outline",hex:"F0B95",version:"3.0.39"},{name:"eye-minus",hex:"F1026",version:"4.1.95"},{name:"eye-minus-outline",hex:"F1027",version:"4.1.95"},{name:"eye-off",hex:"F0209",version:"1.5.54"},{name:"eye-off-outline",hex:"F06D1",version:"1.8.36"},{name:"eye-outline",hex:"F06D0",version:"1.8.36"},{name:"eye-plus",hex:"F086B",version:"2.1.99"},{name:"eye-plus-outline",hex:"F086C",version:"2.1.99"},{name:"eye-refresh",hex:"F197C",version:"6.5.95"},{name:"eye-refresh-outline",hex:"F197D",version:"6.5.95"},{name:"eye-remove",hex:"F15E3",version:"5.6.55"},{name:"eye-remove-outline",hex:"F15E4",version:"5.6.55"},{name:"eye-settings",hex:"F086D",version:"2.1.99"},{name:"eye-settings-outline",hex:"F086E",version:"2.1.99"},{name:"eyedropper",hex:"F020A",version:"1.5.54"},{name:"eyedropper-minus",hex:"F13DD",version:"5.1.45"},{name:"eyedropper-off",hex:"F13DF",version:"5.1.45"},{name:"eyedropper-plus",hex:"F13DC",version:"5.1.45"},{name:"eyedropper-remove",hex:"F13DE",version:"5.1.45"},{name:"eyedropper-variant",hex:"F020B",version:"1.5.54"},{name:"face-agent",hex:"F0D70",version:"3.4.93"},{name:"face-man",hex:"F0643",version:"1.6.50"},{name:"face-man-outline",hex:"F0B96",version:"3.0.39"},{name:"face-man-profile",hex:"F0644",version:"1.6.50"},{name:"face-man-shimmer",hex:"F15CC",version:"5.6.55"},{name:"face-man-shimmer-outline",hex:"F15CD",version:"5.6.55"},{name:"face-mask",hex:"F1586",version:"5.5.55"},{name:"face-mask-outline",hex:"F1587",version:"5.5.55"},{name:"face-recognition",hex:"F0C7B",version:"3.2.89"},{name:"face-woman",hex:"F1077",version:"4.2.95"},{name:"face-woman-outline",hex:"F1078",version:"4.2.95"},{name:"face-woman-profile",hex:"F1076",version:"4.2.95"},{name:"face-woman-shimmer",hex:"F15CE",version:"5.6.55"},{name:"face-woman-shimmer-outline",hex:"F15CF",version:"5.6.55"},{name:"facebook",hex:"F020C",version:"1.5.54"},{name:"facebook-gaming",hex:"F07DD",version:"2.0.46"},{name:"facebook-messenger",hex:"F020E",version:"1.5.54"},{name:"facebook-workplace",hex:"F0B31",version:"2.8.94"},{name:"factory",hex:"F020F",version:"1.5.54"},{name:"family-tree",hex:"F160E",version:"5.6.55"},{name:"fan",hex:"F0210",version:"1.5.54"},{name:"fan-alert",hex:"F146C",version:"5.2.45"},{name:"fan-auto",hex:"F171D",version:"5.9.55"},{name:"fan-chevron-down",hex:"F146D",version:"5.2.45"},{name:"fan-chevron-up",hex:"F146E",version:"5.2.45"},{name:"fan-minus",hex:"F1470",version:"5.2.45"},{name:"fan-off",hex:"F081D",version:"2.1.19"},{name:"fan-plus",hex:"F146F",version:"5.2.45"},{name:"fan-remove",hex:"F1471",version:"5.2.45"},{name:"fan-speed-1",hex:"F1472",version:"5.2.45"},{name:"fan-speed-2",hex:"F1473",version:"5.2.45"},{name:"fan-speed-3",hex:"F1474",version:"5.2.45"},{name:"fast-forward",hex:"F0211",version:"1.5.54"},{name:"fast-forward-10",hex:"F0D71",version:"3.4.93"},{name:"fast-forward-15",hex:"F193A",version:"6.4.95"},{name:"fast-forward-30",hex:"F0D06",version:"3.3.92"},{name:"fast-forward-5",hex:"F11F8",version:"4.6.95"},{name:"fast-forward-60",hex:"F160B",version:"5.6.55"},{name:"fast-forward-outline",hex:"F06D2",version:"1.8.36"},{name:"fax",hex:"F0212",version:"1.5.54"},{name:"feather",hex:"F06D3",version:"1.8.36"},{name:"feature-search",hex:"F0A49",version:"2.6.95"},{name:"feature-search-outline",hex:"F0A4A",version:"2.6.95"},{name:"fedora",hex:"F08DB",version:"2.3.50"},{name:"fence",hex:"F179A",version:"6.1.95"},{name:"fence-electric",hex:"F17F6",version:"6.1.95"},{name:"fencing",hex:"F14C1",version:"5.3.45"},{name:"ferris-wheel",hex:"F0EA4",version:"3.7.94"},{name:"ferry",hex:"F0213",version:"1.5.54"},{name:"file",hex:"F0214",version:"1.5.54"},{name:"file-account",hex:"F073B",version:"1.9.32"},{name:"file-account-outline",hex:"F1028",version:"4.1.95"},{name:"file-alert",hex:"F0A4B",version:"2.6.95"},{name:"file-alert-outline",hex:"F0A4C",version:"2.6.95"},{name:"file-cabinet",hex:"F0AB6",version:"2.7.94"},{name:"file-cad",hex:"F0EEB",version:"3.8.95"},{name:"file-cad-box",hex:"F0EEC",version:"3.8.95"},{name:"file-cancel",hex:"F0DC6",version:"3.5.94"},{name:"file-cancel-outline",hex:"F0DC7",version:"3.5.94"},{name:"file-certificate",hex:"F1186",version:"4.4.95"},{name:"file-certificate-outline",hex:"F1187",version:"4.4.95"},{name:"file-chart",hex:"F0215",version:"1.5.54"},{name:"file-chart-outline",hex:"F1029",version:"4.1.95"},{name:"file-check",hex:"F0216",version:"1.5.54"},{name:"file-check-outline",hex:"F0E29",version:"3.6.95"},{name:"file-clock",hex:"F12E1",version:"4.8.95"},{name:"file-clock-outline",hex:"F12E2",version:"4.8.95"},{name:"file-cloud",hex:"F0217",version:"1.5.54"},{name:"file-cloud-outline",hex:"F102A",version:"4.1.95"},{name:"file-code",hex:"F022E",version:"1.5.54"},{name:"file-code-outline",hex:"F102B",version:"4.1.95"},{name:"file-cog",hex:"F107B",version:"4.2.95"},{name:"file-cog-outline",hex:"F107C",version:"4.2.95"},{name:"file-compare",hex:"F08AA",version:"2.2.43"},{name:"file-delimited",hex:"F0218",version:"1.5.54"},{name:"file-delimited-outline",hex:"F0EA5",version:"3.7.94"},{name:"file-document",hex:"F0219",version:"1.5.54"},{name:"file-document-edit",hex:"F0DC8",version:"3.5.94"},{name:"file-document-edit-outline",hex:"F0DC9",version:"3.5.94"},{name:"file-document-multiple",hex:"F1517",version:"5.4.55"},{name:"file-document-multiple-outline",hex:"F1518",version:"5.4.55"},{name:"file-document-outline",hex:"F09EE",version:"2.5.94"},{name:"file-download",hex:"F0965",version:"2.4.85"},{name:"file-download-outline",hex:"F0966",version:"2.4.85"},{name:"file-edit",hex:"F11E7",version:"4.5.95"},{name:"file-edit-outline",hex:"F11E8",version:"4.5.95"},{name:"file-excel",hex:"F021B",version:"1.5.54"},{name:"file-excel-box",hex:"F021C",version:"1.5.54"},{name:"file-excel-box-outline",hex:"F102C",version:"4.1.95"},{name:"file-excel-outline",hex:"F102D",version:"4.1.95"},{name:"file-export",hex:"F021D",version:"1.5.54"},{name:"file-export-outline",hex:"F102E",version:"4.1.95"},{name:"file-eye",hex:"F0DCA",version:"3.5.94"},{name:"file-eye-outline",hex:"F0DCB",version:"3.5.94"},{name:"file-find",hex:"F021E",version:"1.5.54"},{name:"file-find-outline",hex:"F0B97",version:"3.0.39"},{name:"file-gif-box",hex:"F0D78",version:"3.4.93"},{name:"file-hidden",hex:"F0613",version:"1.5.54"},{name:"file-image",hex:"F021F",version:"1.5.54"},{name:"file-image-marker",hex:"F1772",version:"6.1.95"},{name:"file-image-marker-outline",hex:"F1773",version:"6.1.95"},{name:"file-image-minus",hex:"F193B",version:"6.4.95"},{name:"file-image-minus-outline",hex:"F193C",version:"6.4.95"},{name:"file-image-outline",hex:"F0EB0",version:"3.7.94"},{name:"file-image-plus",hex:"F193D",version:"6.4.95"},{name:"file-image-plus-outline",hex:"F193E",version:"6.4.95"},{name:"file-image-remove",hex:"F193F",version:"6.4.95"},{name:"file-image-remove-outline",hex:"F1940",version:"6.4.95"},{name:"file-import",hex:"F0220",version:"1.5.54"},{name:"file-import-outline",hex:"F102F",version:"4.1.95"},{name:"file-jpg-box",hex:"F0225",version:"1.5.54"},{name:"file-key",hex:"F1184",version:"4.4.95"},{name:"file-key-outline",hex:"F1185",version:"4.4.95"},{name:"file-link",hex:"F1177",version:"4.4.95"},{name:"file-link-outline",hex:"F1178",version:"4.4.95"},{name:"file-lock",hex:"F0221",version:"1.5.54"},{name:"file-lock-outline",hex:"F1030",version:"4.1.95"},{name:"file-marker",hex:"F1774",version:"6.1.95"},{name:"file-marker-outline",hex:"F1775",version:"6.1.95"},{name:"file-move",hex:"F0AB9",version:"2.7.94"},{name:"file-move-outline",hex:"F1031",version:"4.1.95"},{name:"file-multiple",hex:"F0222",version:"1.5.54"},{name:"file-multiple-outline",hex:"F1032",version:"4.1.95"},{name:"file-music",hex:"F0223",version:"1.5.54"},{name:"file-music-outline",hex:"F0E2A",version:"3.6.95"},{name:"file-outline",hex:"F0224",version:"1.5.54"},{name:"file-pdf-box",hex:"F0226",version:"1.5.54"},{name:"file-percent",hex:"F081E",version:"2.1.19"},{name:"file-percent-outline",hex:"F1033",version:"4.1.95"},{name:"file-phone",hex:"F1179",version:"4.4.95"},{name:"file-phone-outline",hex:"F117A",version:"4.4.95"},{name:"file-plus",hex:"F0752",version:"1.9.32"},{name:"file-plus-outline",hex:"F0EED",version:"3.8.95"},{name:"file-png-box",hex:"F0E2D",version:"3.6.95"},{name:"file-powerpoint",hex:"F0227",version:"1.5.54"},{name:"file-powerpoint-box",hex:"F0228",version:"1.5.54"},{name:"file-powerpoint-box-outline",hex:"F1034",version:"4.1.95"},{name:"file-powerpoint-outline",hex:"F1035",version:"4.1.95"},{name:"file-presentation-box",hex:"F0229",version:"1.5.54"},{name:"file-question",hex:"F086F",version:"2.1.99"},{name:"file-question-outline",hex:"F1036",version:"4.1.95"},{name:"file-refresh",hex:"F0918",version:"2.3.50"},{name:"file-refresh-outline",hex:"F0541",version:"1.5.54"},{name:"file-remove",hex:"F0B98",version:"3.0.39"},{name:"file-remove-outline",hex:"F1037",version:"4.1.95"},{name:"file-replace",hex:"F0B32",version:"2.8.94"},{name:"file-replace-outline",hex:"F0B33",version:"2.8.94"},{name:"file-restore",hex:"F0670",version:"1.6.50"},{name:"file-restore-outline",hex:"F1038",version:"4.1.95"},{name:"file-search",hex:"F0C7C",version:"3.2.89"},{name:"file-search-outline",hex:"F0C7D",version:"3.2.89"},{name:"file-send",hex:"F022A",version:"1.5.54"},{name:"file-send-outline",hex:"F1039",version:"4.1.95"},{name:"file-settings",hex:"F1079",version:"4.2.95"},{name:"file-settings-outline",hex:"F107A",version:"4.2.95"},{name:"file-sign",hex:"F19C3",version:"6.5.95"},{name:"file-star",hex:"F103A",version:"4.1.95"},{name:"file-star-outline",hex:"F103B",version:"4.1.95"},{name:"file-swap",hex:"F0FB4",version:"4.0.96"},{name:"file-swap-outline",hex:"F0FB5",version:"4.0.96"},{name:"file-sync",hex:"F1216",version:"4.6.95"},{name:"file-sync-outline",hex:"F1217",version:"4.6.95"},{name:"file-table",hex:"F0C7E",version:"3.2.89"},{name:"file-table-box",hex:"F10E1",version:"4.3.95"},{name:"file-table-box-multiple",hex:"F10E2",version:"4.3.95"},{name:"file-table-box-multiple-outline",hex:"F10E3",version:"4.3.95"},{name:"file-table-box-outline",hex:"F10E4",version:"4.3.95"},{name:"file-table-outline",hex:"F0C7F",version:"3.2.89"},{name:"file-tree",hex:"F0645",version:"1.6.50"},{name:"file-tree-outline",hex:"F13D2",version:"5.1.45"},{name:"file-undo",hex:"F08DC",version:"2.3.50"},{name:"file-undo-outline",hex:"F103C",version:"4.1.95"},{name:"file-upload",hex:"F0A4D",version:"2.6.95"},{name:"file-upload-outline",hex:"F0A4E",version:"2.6.95"},{name:"file-video",hex:"F022B",version:"1.5.54"},{name:"file-video-outline",hex:"F0E2C",version:"3.6.95"},{name:"file-word",hex:"F022C",version:"1.5.54"},{name:"file-word-box",hex:"F022D",version:"1.5.54"},{name:"file-word-box-outline",hex:"F103D",version:"4.1.95"},{name:"file-word-outline",hex:"F103E",version:"4.1.95"},{name:"film",hex:"F022F",version:"1.5.54"},{name:"filmstrip",hex:"F0230",version:"1.5.54"},{name:"filmstrip-box",hex:"F0332",version:"1.5.54"},{name:"filmstrip-box-multiple",hex:"F0D18",version:"3.3.92"},{name:"filmstrip-off",hex:"F0231",version:"1.5.54"},{name:"filter",hex:"F0232",version:"1.5.54"},{name:"filter-check",hex:"F18EC",version:"6.3.95"},{name:"filter-check-outline",hex:"F18ED",version:"6.3.95"},{name:"filter-menu",hex:"F10E5",version:"4.3.95"},{name:"filter-menu-outline",hex:"F10E6",version:"4.3.95"},{name:"filter-minus",hex:"F0EEE",version:"3.8.95"},{name:"filter-minus-outline",hex:"F0EEF",version:"3.8.95"},{name:"filter-off",hex:"F14EF",version:"5.4.55"},{name:"filter-off-outline",hex:"F14F0",version:"5.4.55"},{name:"filter-outline",hex:"F0233",version:"1.5.54"},{name:"filter-plus",hex:"F0EF0",version:"3.8.95"},{name:"filter-plus-outline",hex:"F0EF1",version:"3.8.95"},{name:"filter-remove",hex:"F0234",version:"1.5.54"},{name:"filter-remove-outline",hex:"F0235",version:"1.5.54"},{name:"filter-variant",hex:"F0236",version:"1.5.54"},{name:"filter-variant-minus",hex:"F1112",version:"4.3.95"},{name:"filter-variant-plus",hex:"F1113",version:"4.3.95"},{name:"filter-variant-remove",hex:"F103F",version:"4.1.95"},{name:"finance",hex:"F081F",version:"2.1.19"},{name:"find-replace",hex:"F06D4",version:"1.8.36"},{name:"fingerprint",hex:"F0237",version:"1.5.54"},{name:"fingerprint-off",hex:"F0EB1",version:"3.7.94"},{name:"fire",hex:"F0238",version:"1.5.54"},{name:"fire-alert",hex:"F15D7",version:"5.6.55"},{name:"fire-circle",hex:"F1807",version:"6.1.95"},{name:"fire-extinguisher",hex:"F0EF2",version:"3.8.95"},{name:"fire-hydrant",hex:"F1137",version:"4.4.95"},{name:"fire-hydrant-alert",hex:"F1138",version:"4.4.95"},{name:"fire-hydrant-off",hex:"F1139",version:"4.4.95"},{name:"fire-off",hex:"F1722",version:"5.9.55"},{name:"fire-truck",hex:"F08AB",version:"2.2.43"},{name:"firebase",hex:"F0967",version:"2.4.85"},{name:"firefox",hex:"F0239",version:"1.5.54"},{name:"fireplace",hex:"F0E2E",version:"3.6.95"},{name:"fireplace-off",hex:"F0E2F",version:"3.6.95"},{name:"firewire",hex:"F05BE",version:"1.5.54"},{name:"firework",hex:"F0E30",version:"3.6.95"},{name:"firework-off",hex:"F1723",version:"5.9.55"},{name:"fish",hex:"F023A",version:"1.5.54"},{name:"fish-off",hex:"F13F3",version:"5.1.45"},{name:"fishbowl",hex:"F0EF3",version:"3.8.95"},{name:"fishbowl-outline",hex:"F0EF4",version:"3.8.95"},{name:"fit-to-page",hex:"F0EF5",version:"3.8.95"},{name:"fit-to-page-outline",hex:"F0EF6",version:"3.8.95"},{name:"fit-to-screen",hex:"F18F4",version:"6.3.95"},{name:"fit-to-screen-outline",hex:"F18F5",version:"6.3.95"},{name:"flag",hex:"F023B",version:"1.5.54"},{name:"flag-checkered",hex:"F023C",version:"1.5.54"},{name:"flag-minus",hex:"F0B99",version:"3.0.39"},{name:"flag-minus-outline",hex:"F10B2",version:"4.2.95"},{name:"flag-off",hex:"F18EE",version:"6.3.95"},{name:"flag-off-outline",hex:"F18EF",version:"6.3.95"},{name:"flag-outline",hex:"F023D",version:"1.5.54"},{name:"flag-plus",hex:"F0B9A",version:"3.0.39"},{name:"flag-plus-outline",hex:"F10B3",version:"4.2.95"},{name:"flag-remove",hex:"F0B9B",version:"3.0.39"},{name:"flag-remove-outline",hex:"F10B4",version:"4.2.95"},{name:"flag-triangle",hex:"F023F",version:"1.5.54"},{name:"flag-variant",hex:"F0240",version:"1.5.54"},{name:"flag-variant-outline",hex:"F023E",version:"1.5.54"},{name:"flare",hex:"F0D72",version:"3.4.93"},{name:"flash",hex:"F0241",version:"1.5.54"},{name:"flash-alert",hex:"F0EF7",version:"3.8.95"},{name:"flash-alert-outline",hex:"F0EF8",version:"3.8.95"},{name:"flash-auto",hex:"F0242",version:"1.5.54"},{name:"flash-off",hex:"F0243",version:"1.5.54"},{name:"flash-outline",hex:"F06D5",version:"1.8.36"},{name:"flash-red-eye",hex:"F067B",version:"1.7.12"},{name:"flashlight",hex:"F0244",version:"1.5.54"},{name:"flashlight-off",hex:"F0245",version:"1.5.54"},{name:"flask",hex:"F0093",version:"1.5.54"},{name:"flask-empty",hex:"F0094",version:"1.5.54"},{name:"flask-empty-minus",hex:"F123A",version:"4.6.95"},{name:"flask-empty-minus-outline",hex:"F123B",version:"4.6.95"},{name:"flask-empty-off",hex:"F13F4",version:"5.1.45"},{name:"flask-empty-off-outline",hex:"F13F5",version:"5.1.45"},{name:"flask-empty-outline",hex:"F0095",version:"1.5.54"},{name:"flask-empty-plus",hex:"F123C",version:"4.6.95"},{name:"flask-empty-plus-outline",hex:"F123D",version:"4.6.95"},{name:"flask-empty-remove",hex:"F123E",version:"4.6.95"},{name:"flask-empty-remove-outline",hex:"F123F",version:"4.6.95"},{name:"flask-minus",hex:"F1240",version:"4.6.95"},{name:"flask-minus-outline",hex:"F1241",version:"4.6.95"},{name:"flask-off",hex:"F13F6",version:"5.1.45"},{name:"flask-off-outline",hex:"F13F7",version:"5.1.45"},{name:"flask-outline",hex:"F0096",version:"1.5.54"},{name:"flask-plus",hex:"F1242",version:"4.6.95"},{name:"flask-plus-outline",hex:"F1243",version:"4.6.95"},{name:"flask-remove",hex:"F1244",version:"4.6.95"},{name:"flask-remove-outline",hex:"F1245",version:"4.6.95"},{name:"flask-round-bottom",hex:"F124B",version:"4.6.95"},{name:"flask-round-bottom-empty",hex:"F124C",version:"4.6.95"},{name:"flask-round-bottom-empty-outline",hex:"F124D",version:"4.6.95"},{name:"flask-round-bottom-outline",hex:"F124E",version:"4.6.95"},{name:"fleur-de-lis",hex:"F1303",version:"4.8.95"},{name:"flip-horizontal",hex:"F10E7",version:"4.3.95"},{name:"flip-to-back",hex:"F0247",version:"1.5.54"},{name:"flip-to-front",hex:"F0248",version:"1.5.54"},{name:"flip-vertical",hex:"F10E8",version:"4.3.95"},{name:"floor-lamp",hex:"F08DD",version:"2.3.50"},{name:"floor-lamp-dual",hex:"F1040",version:"4.1.95"},{name:"floor-lamp-dual-outline",hex:"F17CE",version:"6.1.95"},{name:"floor-lamp-outline",hex:"F17C8",version:"6.1.95"},{name:"floor-lamp-torchiere",hex:"F1747",version:"6.1.95"},{name:"floor-lamp-torchiere-outline",hex:"F17D6",version:"6.1.95"},{name:"floor-lamp-torchiere-variant",hex:"F1041",version:"4.1.95"},{name:"floor-lamp-torchiere-variant-outline",hex:"F17CF",version:"6.1.95"},{name:"floor-plan",hex:"F0821",version:"2.1.19"},{name:"floppy",hex:"F0249",version:"1.5.54"},{name:"floppy-variant",hex:"F09EF",version:"2.5.94"},{name:"flower",hex:"F024A",version:"1.5.54"},{name:"flower-outline",hex:"F09F0",version:"2.5.94"},{name:"flower-pollen",hex:"F1885",version:"6.2.95"},{name:"flower-pollen-outline",hex:"F1886",version:"6.2.95"},{name:"flower-poppy",hex:"F0D08",version:"3.3.92"},{name:"flower-tulip",hex:"F09F1",version:"2.5.94"},{name:"flower-tulip-outline",hex:"F09F2",version:"2.5.94"},{name:"focus-auto",hex:"F0F4E",version:"3.9.97"},{name:"focus-field",hex:"F0F4F",version:"3.9.97"},{name:"focus-field-horizontal",hex:"F0F50",version:"3.9.97"},{name:"focus-field-vertical",hex:"F0F51",version:"3.9.97"},{name:"folder",hex:"F024B",version:"1.5.54"},{name:"folder-account",hex:"F024C",version:"1.5.54"},{name:"folder-account-outline",hex:"F0B9C",version:"3.0.39"},{name:"folder-alert",hex:"F0DCC",version:"3.5.94"},{name:"folder-alert-outline",hex:"F0DCD",version:"3.5.94"},{name:"folder-check",hex:"F197E",version:"6.5.95"},{name:"folder-check-outline",hex:"F197F",version:"6.5.95"},{name:"folder-clock",hex:"F0ABA",version:"2.7.94"},{name:"folder-clock-outline",hex:"F0ABB",version:"2.7.94"},{name:"folder-cog",hex:"F107F",version:"4.2.95"},{name:"folder-cog-outline",hex:"F1080",version:"4.2.95"},{name:"folder-download",hex:"F024D",version:"1.5.54"},{name:"folder-download-outline",hex:"F10E9",version:"4.3.95"},{name:"folder-edit",hex:"F08DE",version:"2.3.50"},{name:"folder-edit-outline",hex:"F0DCE",version:"3.5.94"},{name:"folder-eye",hex:"F178A",version:"6.1.95"},{name:"folder-eye-outline",hex:"F178B",version:"6.1.95"},{name:"folder-google-drive",hex:"F024E",version:"1.5.54"},{name:"folder-heart",hex:"F10EA",version:"4.3.95"},{name:"folder-heart-outline",hex:"F10EB",version:"4.3.95"},{name:"folder-hidden",hex:"F179E",version:"6.1.95"},{name:"folder-home",hex:"F10B5",version:"4.2.95"},{name:"folder-home-outline",hex:"F10B6",version:"4.2.95"},{name:"folder-image",hex:"F024F",version:"1.5.54"},{name:"folder-information",hex:"F10B7",version:"4.2.95"},{name:"folder-information-outline",hex:"F10B8",version:"4.2.95"},{name:"folder-key",hex:"F08AC",version:"2.2.43"},{name:"folder-key-network",hex:"F08AD",version:"2.2.43"},{name:"folder-key-network-outline",hex:"F0C80",version:"3.2.89"},{name:"folder-key-outline",hex:"F10EC",version:"4.3.95"},{name:"folder-lock",hex:"F0250",version:"1.5.54"},{name:"folder-lock-open",hex:"F0251",version:"1.5.54"},{name:"folder-marker",hex:"F126D",version:"4.7.95"},{name:"folder-marker-outline",hex:"F126E",version:"4.7.95"},{name:"folder-move",hex:"F0252",version:"1.5.54"},{name:"folder-move-outline",hex:"F1246",version:"4.6.95"},{name:"folder-multiple",hex:"F0253",version:"1.5.54"},{name:"folder-multiple-image",hex:"F0254",version:"1.5.54"},{name:"folder-multiple-outline",hex:"F0255",version:"1.5.54"},{name:"folder-multiple-plus",hex:"F147E",version:"5.3.45"},{name:"folder-multiple-plus-outline",hex:"F147F",version:"5.3.45"},{name:"folder-music",hex:"F1359",version:"4.9.95"},{name:"folder-music-outline",hex:"F135A",version:"4.9.95"},{name:"folder-network",hex:"F0870",version:"2.1.99"},{name:"folder-network-outline",hex:"F0C81",version:"3.2.89"},{name:"folder-open",hex:"F0770",version:"1.9.32"},{name:"folder-open-outline",hex:"F0DCF",version:"3.5.94"},{name:"folder-outline",hex:"F0256",version:"1.5.54"},{name:"folder-plus",hex:"F0257",version:"1.5.54"},{name:"folder-plus-outline",hex:"F0B9D",version:"3.0.39"},{name:"folder-pound",hex:"F0D09",version:"3.3.92"},{name:"folder-pound-outline",hex:"F0D0A",version:"3.3.92"},{name:"folder-refresh",hex:"F0749",version:"1.9.32"},{name:"folder-refresh-outline",hex:"F0542",version:"1.5.54"},{name:"folder-remove",hex:"F0258",version:"1.5.54"},{name:"folder-remove-outline",hex:"F0B9E",version:"3.0.39"},{name:"folder-search",hex:"F0968",version:"2.4.85"},{name:"folder-search-outline",hex:"F0969",version:"2.4.85"},{name:"folder-settings",hex:"F107D",version:"4.2.95"},{name:"folder-settings-outline",hex:"F107E",version:"4.2.95"},{name:"folder-star",hex:"F069D",version:"1.7.12"},{name:"folder-star-multiple",hex:"F13D3",version:"5.1.45"},{name:"folder-star-multiple-outline",hex:"F13D4",version:"5.1.45"},{name:"folder-star-outline",hex:"F0B9F",version:"3.0.39"},{name:"folder-swap",hex:"F0FB6",version:"4.0.96"},{name:"folder-swap-outline",hex:"F0FB7",version:"4.0.96"},{name:"folder-sync",hex:"F0D0B",version:"3.3.92"},{name:"folder-sync-outline",hex:"F0D0C",version:"3.3.92"},{name:"folder-table",hex:"F12E3",version:"4.8.95"},{name:"folder-table-outline",hex:"F12E4",version:"4.8.95"},{name:"folder-text",hex:"F0C82",version:"3.2.89"},{name:"folder-text-outline",hex:"F0C83",version:"3.2.89"},{name:"folder-upload",hex:"F0259",version:"1.5.54"},{name:"folder-upload-outline",hex:"F10ED",version:"4.3.95"},{name:"folder-zip",hex:"F06EB",version:"1.8.36"},{name:"folder-zip-outline",hex:"F07B9",version:"2.0.46"},{name:"font-awesome",hex:"F003A",version:"1.5.54"},{name:"food",hex:"F025A",version:"1.5.54"},{name:"food-apple",hex:"F025B",version:"1.5.54"},{name:"food-apple-outline",hex:"F0C84",version:"3.2.89"},{name:"food-croissant",hex:"F07C8",version:"2.0.46"},{name:"food-drumstick",hex:"F141F",version:"5.2.45"},{name:"food-drumstick-off",hex:"F1468",version:"5.2.45"},{name:"food-drumstick-off-outline",hex:"F1469",version:"5.2.45"},{name:"food-drumstick-outline",hex:"F1420",version:"5.2.45"},{name:"food-fork-drink",hex:"F05F2",version:"1.5.54"},{name:"food-halal",hex:"F1572",version:"5.5.55"},{name:"food-hot-dog",hex:"F184B",version:"6.2.95"},{name:"food-kosher",hex:"F1573",version:"5.5.55"},{name:"food-off",hex:"F05F3",version:"1.5.54"},{name:"food-off-outline",hex:"F1915",version:"6.4.95"},{name:"food-outline",hex:"F1916",version:"6.4.95"},{name:"food-steak",hex:"F146A",version:"5.2.45"},{name:"food-steak-off",hex:"F146B",version:"5.2.45"},{name:"food-takeout-box",hex:"F1836",version:"6.2.95"},{name:"food-takeout-box-outline",hex:"F1837",version:"6.2.95"},{name:"food-turkey",hex:"F171C",version:"5.9.55"},{name:"food-variant",hex:"F025C",version:"1.5.54"},{name:"food-variant-off",hex:"F13E5",version:"5.1.45"},{name:"foot-print",hex:"F0F52",version:"3.9.97"},{name:"football",hex:"F025D",version:"1.5.54"},{name:"football-australian",hex:"F025E",version:"1.5.54"},{name:"football-helmet",hex:"F025F",version:"1.5.54"},{name:"forest",hex:"F1897",version:"6.2.95"},{name:"forklift",hex:"F07C9",version:"2.0.46"},{name:"form-dropdown",hex:"F1400",version:"5.1.45"},{name:"form-select",hex:"F1401",version:"5.1.45"},{name:"form-textarea",hex:"F1095",version:"4.2.95"},{name:"form-textbox",hex:"F060E",version:"1.5.54"},{name:"form-textbox-lock",hex:"F135D",version:"4.9.95"},{name:"form-textbox-password",hex:"F07F5",version:"2.0.46"},{name:"format-align-bottom",hex:"F0753",version:"1.9.32"},{name:"format-align-center",hex:"F0260",version:"1.5.54"},{name:"format-align-justify",hex:"F0261",version:"1.5.54"},{name:"format-align-left",hex:"F0262",version:"1.5.54"},{name:"format-align-middle",hex:"F0754",version:"1.9.32"},{name:"format-align-right",hex:"F0263",version:"1.5.54"},{name:"format-align-top",hex:"F0755",version:"1.9.32"},{name:"format-annotation-minus",hex:"F0ABC",version:"2.7.94"},{name:"format-annotation-plus",hex:"F0646",version:"1.6.50"},{name:"format-bold",hex:"F0264",version:"1.5.54"},{name:"format-clear",hex:"F0265",version:"1.5.54"},{name:"format-color-fill",hex:"F0266",version:"1.5.54"},{name:"format-color-highlight",hex:"F0E31",version:"3.6.95"},{name:"format-color-marker-cancel",hex:"F1313",version:"4.8.95"},{name:"format-color-text",hex:"F069E",version:"1.7.12"},{name:"format-columns",hex:"F08DF",version:"2.3.50"},{name:"format-float-center",hex:"F0267",version:"1.5.54"},{name:"format-float-left",hex:"F0268",version:"1.5.54"},{name:"format-float-none",hex:"F0269",version:"1.5.54"},{name:"format-float-right",hex:"F026A",version:"1.5.54"},{name:"format-font",hex:"F06D6",version:"1.8.36"},{name:"format-font-size-decrease",hex:"F09F3",version:"2.5.94"},{name:"format-font-size-increase",hex:"F09F4",version:"2.5.94"},{name:"format-header-1",hex:"F026B",version:"1.5.54"},{name:"format-header-2",hex:"F026C",version:"1.5.54"},{name:"format-header-3",hex:"F026D",version:"1.5.54"},{name:"format-header-4",hex:"F026E",version:"1.5.54"},{name:"format-header-5",hex:"F026F",version:"1.5.54"},{name:"format-header-6",hex:"F0270",version:"1.5.54"},{name:"format-header-decrease",hex:"F0271",version:"1.5.54"},{name:"format-header-equal",hex:"F0272",version:"1.5.54"},{name:"format-header-increase",hex:"F0273",version:"1.5.54"},{name:"format-header-pound",hex:"F0274",version:"1.5.54"},{name:"format-horizontal-align-center",hex:"F061E",version:"1.6.50"},{name:"format-horizontal-align-left",hex:"F061F",version:"1.6.50"},{name:"format-horizontal-align-right",hex:"F0620",version:"1.6.50"},{name:"format-indent-decrease",hex:"F0275",version:"1.5.54"},{name:"format-indent-increase",hex:"F0276",version:"1.5.54"},{name:"format-italic",hex:"F0277",version:"1.5.54"},{name:"format-letter-case",hex:"F0B34",version:"2.8.94"},{name:"format-letter-case-lower",hex:"F0B35",version:"2.8.94"},{name:"format-letter-case-upper",hex:"F0B36",version:"2.8.94"},{name:"format-letter-ends-with",hex:"F0FB8",version:"4.0.96"},{name:"format-letter-matches",hex:"F0FB9",version:"4.0.96"},{name:"format-letter-spacing",hex:"F1956",version:"6.4.95"},{name:"format-letter-starts-with",hex:"F0FBA",version:"4.0.96"},{name:"format-line-spacing",hex:"F0278",version:"1.5.54"},{name:"format-line-style",hex:"F05C8",version:"1.5.54"},{name:"format-line-weight",hex:"F05C9",version:"1.5.54"},{name:"format-list-bulleted",hex:"F0279",version:"1.5.54"},{name:"format-list-bulleted-square",hex:"F0DD0",version:"3.5.94"},{name:"format-list-bulleted-triangle",hex:"F0EB2",version:"3.7.94"},{name:"format-list-bulleted-type",hex:"F027A",version:"1.5.54"},{name:"format-list-checkbox",hex:"F096A",version:"2.4.85"},{name:"format-list-checks",hex:"F0756",version:"1.9.32"},{name:"format-list-group",hex:"F1860",version:"6.2.95"},{name:"format-list-numbered",hex:"F027B",version:"1.5.54"},{name:"format-list-numbered-rtl",hex:"F0D0D",version:"3.3.92"},{name:"format-list-text",hex:"F126F",version:"4.7.95"},{name:"format-overline",hex:"F0EB3",version:"3.7.94"},{name:"format-page-break",hex:"F06D7",version:"1.8.36"},{name:"format-page-split",hex:"F1917",version:"6.4.95"},{name:"format-paint",hex:"F027C",version:"1.5.54"},{name:"format-paragraph",hex:"F027D",version:"1.5.54"},{name:"format-pilcrow",hex:"F06D8",version:"1.8.36"},{name:"format-quote-close",hex:"F027E",version:"1.5.54"},{name:"format-quote-close-outline",hex:"F11A8",version:"4.5.95"},{name:"format-quote-open",hex:"F0757",version:"1.9.32"},{name:"format-quote-open-outline",hex:"F11A7",version:"4.5.95"},{name:"format-rotate-90",hex:"F06AA",version:"1.7.12"},{name:"format-section",hex:"F069F",version:"1.7.12"},{name:"format-size",hex:"F027F",version:"1.5.54"},{name:"format-strikethrough",hex:"F0280",version:"1.5.54"},{name:"format-strikethrough-variant",hex:"F0281",version:"1.5.54"},{name:"format-subscript",hex:"F0282",version:"1.5.54"},{name:"format-superscript",hex:"F0283",version:"1.5.54"},{name:"format-text",hex:"F0284",version:"1.5.54"},{name:"format-text-rotation-angle-down",hex:"F0FBB",version:"4.0.96"},{name:"format-text-rotation-angle-up",hex:"F0FBC",version:"4.0.96"},{name:"format-text-rotation-down",hex:"F0D73",version:"3.4.93"},{name:"format-text-rotation-down-vertical",hex:"F0FBD",version:"4.0.96"},{name:"format-text-rotation-none",hex:"F0D74",version:"3.4.93"},{name:"format-text-rotation-up",hex:"F0FBE",version:"4.0.96"},{name:"format-text-rotation-vertical",hex:"F0FBF",version:"4.0.96"},{name:"format-text-variant",hex:"F0E32",version:"3.6.95"},{name:"format-text-variant-outline",hex:"F150F",version:"5.4.55"},{name:"format-text-wrapping-clip",hex:"F0D0E",version:"3.3.92"},{name:"format-text-wrapping-overflow",hex:"F0D0F",version:"3.3.92"},{name:"format-text-wrapping-wrap",hex:"F0D10",version:"3.3.92"},{name:"format-textbox",hex:"F0D11",version:"3.3.92"},{name:"format-textdirection-l-to-r",hex:"F0285",version:"1.5.54"},{name:"format-textdirection-r-to-l",hex:"F0286",version:"1.5.54"},{name:"format-title",hex:"F05F4",version:"1.5.54"},{name:"format-underline",hex:"F0287",version:"1.5.54"},{name:"format-underline-wavy",hex:"F18E9",version:"6.3.95"},{name:"format-vertical-align-bottom",hex:"F0621",version:"1.6.50"},{name:"format-vertical-align-center",hex:"F0622",version:"1.6.50"},{name:"format-vertical-align-top",hex:"F0623",version:"1.6.50"},{name:"format-wrap-inline",hex:"F0288",version:"1.5.54"},{name:"format-wrap-square",hex:"F0289",version:"1.5.54"},{name:"format-wrap-tight",hex:"F028A",version:"1.5.54"},{name:"format-wrap-top-bottom",hex:"F028B",version:"1.5.54"},{name:"forum",hex:"F028C",version:"1.5.54"},{name:"forum-outline",hex:"F0822",version:"2.1.19"},{name:"forward",hex:"F028D",version:"1.5.54"},{name:"forwardburger",hex:"F0D75",version:"3.4.93"},{name:"fountain",hex:"F096B",version:"2.4.85"},{name:"fountain-pen",hex:"F0D12",version:"3.3.92"},{name:"fountain-pen-tip",hex:"F0D13",version:"3.3.92"},{name:"fraction-one-half",hex:"F1992",version:"6.5.95"},{name:"freebsd",hex:"F08E0",version:"2.3.50"},{name:"french-fries",hex:"F1957",version:"6.4.95"},{name:"frequently-asked-questions",hex:"F0EB4",version:"3.7.94"},{name:"fridge",hex:"F0290",version:"1.5.54"},{name:"fridge-alert",hex:"F11B1",version:"4.5.95"},{name:"fridge-alert-outline",hex:"F11B2",version:"4.5.95"},{name:"fridge-bottom",hex:"F0292",version:"1.5.54"},{name:"fridge-industrial",hex:"F15EE",version:"5.6.55"},{name:"fridge-industrial-alert",hex:"F15EF",version:"5.6.55"},{name:"fridge-industrial-alert-outline",hex:"F15F0",version:"5.6.55"},{name:"fridge-industrial-off",hex:"F15F1",version:"5.6.55"},{name:"fridge-industrial-off-outline",hex:"F15F2",version:"5.6.55"},{name:"fridge-industrial-outline",hex:"F15F3",version:"5.6.55"},{name:"fridge-off",hex:"F11AF",version:"4.5.95"},{name:"fridge-off-outline",hex:"F11B0",version:"4.5.95"},{name:"fridge-outline",hex:"F028F",version:"1.5.54"},{name:"fridge-top",hex:"F0291",version:"1.5.54"},{name:"fridge-variant",hex:"F15F4",version:"5.6.55"},{name:"fridge-variant-alert",hex:"F15F5",version:"5.6.55"},{name:"fridge-variant-alert-outline",hex:"F15F6",version:"5.6.55"},{name:"fridge-variant-off",hex:"F15F7",version:"5.6.55"},{name:"fridge-variant-off-outline",hex:"F15F8",version:"5.6.55"},{name:"fridge-variant-outline",hex:"F15F9",version:"5.6.55"},{name:"fruit-cherries",hex:"F1042",version:"4.1.95"},{name:"fruit-cherries-off",hex:"F13F8",version:"5.1.45"},{name:"fruit-citrus",hex:"F1043",version:"4.1.95"},{name:"fruit-citrus-off",hex:"F13F9",version:"5.1.45"},{name:"fruit-grapes",hex:"F1044",version:"4.1.95"},{name:"fruit-grapes-outline",hex:"F1045",version:"4.1.95"},{name:"fruit-pineapple",hex:"F1046",version:"4.1.95"},{name:"fruit-watermelon",hex:"F1047",version:"4.1.95"},{name:"fuel",hex:"F07CA",version:"2.0.46"},{name:"fuel-cell",hex:"F18B5",version:"6.3.95"},{name:"fullscreen",hex:"F0293",version:"1.5.54"},{name:"fullscreen-exit",hex:"F0294",version:"1.5.54"},{name:"function",hex:"F0295",version:"1.5.54"},{name:"function-variant",hex:"F0871",version:"2.1.99"},{name:"furigana-horizontal",hex:"F1081",version:"4.2.95"},{name:"furigana-vertical",hex:"F1082",version:"4.2.95"},{name:"fuse",hex:"F0C85",version:"3.2.89"},{name:"fuse-alert",hex:"F142D",version:"5.2.45"},{name:"fuse-blade",hex:"F0C86",version:"3.2.89"},{name:"fuse-off",hex:"F142C",version:"5.2.45"},{name:"gamepad",hex:"F0296",version:"1.5.54"},{name:"gamepad-circle",hex:"F0E33",version:"3.6.95"},{name:"gamepad-circle-down",hex:"F0E34",version:"3.6.95"},{name:"gamepad-circle-left",hex:"F0E35",version:"3.6.95"},{name:"gamepad-circle-outline",hex:"F0E36",version:"3.6.95"},{name:"gamepad-circle-right",hex:"F0E37",version:"3.6.95"},{name:"gamepad-circle-up",hex:"F0E38",version:"3.6.95"},{name:"gamepad-down",hex:"F0E39",version:"3.6.95"},{name:"gamepad-left",hex:"F0E3A",version:"3.6.95"},{name:"gamepad-outline",hex:"F1919",version:"6.4.95"},{name:"gamepad-right",hex:"F0E3B",version:"3.6.95"},{name:"gamepad-round",hex:"F0E3C",version:"3.6.95"},{name:"gamepad-round-down",hex:"F0E3D",version:"3.6.95"},{name:"gamepad-round-left",hex:"F0E3E",version:"3.6.95"},{name:"gamepad-round-outline",hex:"F0E3F",version:"3.6.95"},{name:"gamepad-round-right",hex:"F0E40",version:"3.6.95"},{name:"gamepad-round-up",hex:"F0E41",version:"3.6.95"},{name:"gamepad-square",hex:"F0EB5",version:"3.7.94"},{name:"gamepad-square-outline",hex:"F0EB6",version:"3.7.94"},{name:"gamepad-up",hex:"F0E42",version:"3.6.95"},{name:"gamepad-variant",hex:"F0297",version:"1.5.54"},{name:"gamepad-variant-outline",hex:"F0EB7",version:"3.7.94"},{name:"gamma",hex:"F10EE",version:"4.3.95"},{name:"gantry-crane",hex:"F0DD1",version:"3.5.94"},{name:"garage",hex:"F06D9",version:"1.8.36"},{name:"garage-alert",hex:"F0872",version:"2.1.99"},{name:"garage-alert-variant",hex:"F12D5",version:"4.8.95"},{name:"garage-lock",hex:"F17FB",version:"6.1.95"},{name:"garage-open",hex:"F06DA",version:"1.8.36"},{name:"garage-open-variant",hex:"F12D4",version:"4.8.95"},{name:"garage-variant",hex:"F12D3",version:"4.8.95"},{name:"garage-variant-lock",hex:"F17FC",version:"6.1.95"},{name:"gas-cylinder",hex:"F0647",version:"1.6.50"},{name:"gas-station",hex:"F0298",version:"1.5.54"},{name:"gas-station-off",hex:"F1409",version:"5.1.45"},{name:"gas-station-off-outline",hex:"F140A",version:"5.1.45"},{name:"gas-station-outline",hex:"F0EB8",version:"3.7.94"},{name:"gate",hex:"F0299",version:"1.5.54"},{name:"gate-alert",hex:"F17F8",version:"6.1.95"},{name:"gate-and",hex:"F08E1",version:"2.3.50"},{name:"gate-arrow-left",hex:"F17F7",version:"6.1.95"},{name:"gate-arrow-right",hex:"F1169",version:"4.4.95"},{name:"gate-nand",hex:"F08E2",version:"2.3.50"},{name:"gate-nor",hex:"F08E3",version:"2.3.50"},{name:"gate-not",hex:"F08E4",version:"2.3.50"},{name:"gate-open",hex:"F116A",version:"4.4.95"},{name:"gate-or",hex:"F08E5",version:"2.3.50"},{name:"gate-xnor",hex:"F08E6",version:"2.3.50"},{name:"gate-xor",hex:"F08E7",version:"2.3.50"},{name:"gatsby",hex:"F0E43",version:"3.6.95"},{name:"gauge",hex:"F029A",version:"1.5.54"},{name:"gauge-empty",hex:"F0873",version:"2.1.99"},{name:"gauge-full",hex:"F0874",version:"2.1.99"},{name:"gauge-low",hex:"F0875",version:"2.1.99"},{name:"gavel",hex:"F029B",version:"1.5.54"},{name:"gender-female",hex:"F029C",version:"1.5.54"},{name:"gender-male",hex:"F029D",version:"1.5.54"},{name:"gender-male-female",hex:"F029E",version:"1.5.54"},{name:"gender-male-female-variant",hex:"F113F",version:"4.4.95"},{name:"gender-non-binary",hex:"F1140",version:"4.4.95"},{name:"gender-transgender",hex:"F029F",version:"1.5.54"},{name:"gentoo",hex:"F08E8",version:"2.3.50"},{name:"gesture",hex:"F07CB",version:"2.0.46"},{name:"gesture-double-tap",hex:"F073C",version:"1.9.32"},{name:"gesture-pinch",hex:"F0ABD",version:"2.7.94"},{name:"gesture-spread",hex:"F0ABE",version:"2.7.94"},{name:"gesture-swipe",hex:"F0D76",version:"3.4.93"},{name:"gesture-swipe-down",hex:"F073D",version:"1.9.32"},{name:"gesture-swipe-horizontal",hex:"F0ABF",version:"2.7.94"},{name:"gesture-swipe-left",hex:"F073E",version:"1.9.32"},{name:"gesture-swipe-right",hex:"F073F",version:"1.9.32"},{name:"gesture-swipe-up",hex:"F0740",version:"1.9.32"},{name:"gesture-swipe-vertical",hex:"F0AC0",version:"2.7.94"},{name:"gesture-tap",hex:"F0741",version:"1.9.32"},{name:"gesture-tap-box",hex:"F12A9",version:"4.7.95"},{name:"gesture-tap-button",hex:"F12A8",version:"4.7.95"},{name:"gesture-tap-hold",hex:"F0D77",version:"3.4.93"},{name:"gesture-two-double-tap",hex:"F0742",version:"1.9.32"},{name:"gesture-two-tap",hex:"F0743",version:"1.9.32"},{name:"ghost",hex:"F02A0",version:"1.5.54"},{name:"ghost-off",hex:"F09F5",version:"2.5.94"},{name:"ghost-off-outline",hex:"F165C",version:"5.7.55"},{name:"ghost-outline",hex:"F165D",version:"5.7.55"},{name:"gift",hex:"F0E44",version:"3.6.95"},{name:"gift-off",hex:"F16EF",version:"5.9.55"},{name:"gift-off-outline",hex:"F16F0",version:"5.9.55"},{name:"gift-open",hex:"F16F1",version:"5.9.55"},{name:"gift-open-outline",hex:"F16F2",version:"5.9.55"},{name:"gift-outline",hex:"F02A1",version:"1.5.54"},{name:"git",hex:"F02A2",version:"1.5.54"},{name:"github",hex:"F02A4",version:"1.5.54"},{name:"gitlab",hex:"F0BA0",version:"3.0.39"},{name:"glass-cocktail",hex:"F0356",version:"1.5.54"},{name:"glass-cocktail-off",hex:"F15E6",version:"5.6.55"},{name:"glass-flute",hex:"F02A5",version:"1.5.54"},{name:"glass-fragile",hex:"F1873",version:"6.2.95"},{name:"glass-mug",hex:"F02A6",version:"1.5.54"},{name:"glass-mug-off",hex:"F15E7",version:"5.6.55"},{name:"glass-mug-variant",hex:"F1116",version:"4.3.95"},{name:"glass-mug-variant-off",hex:"F15E8",version:"5.6.55"},{name:"glass-pint-outline",hex:"F130D",version:"4.8.95"},{name:"glass-stange",hex:"F02A7",version:"1.5.54"},{name:"glass-tulip",hex:"F02A8",version:"1.5.54"},{name:"glass-wine",hex:"F0876",version:"2.1.99"},{name:"glasses",hex:"F02AA",version:"1.5.54"},{name:"globe-light",hex:"F12D7",version:"4.8.95"},{name:"globe-model",hex:"F08E9",version:"2.3.50"},{name:"gmail",hex:"F02AB",version:"1.5.54"},{name:"gnome",hex:"F02AC",version:"1.5.54"},{name:"go-kart",hex:"F0D79",version:"3.4.93"},{name:"go-kart-track",hex:"F0D7A",version:"3.4.93"},{name:"gog",hex:"F0BA1",version:"3.0.39"},{name:"gold",hex:"F124F",version:"4.6.95"},{name:"golf",hex:"F0823",version:"2.1.19"},{name:"golf-cart",hex:"F11A4",version:"4.5.95"},{name:"golf-tee",hex:"F1083",version:"4.2.95"},{name:"gondola",hex:"F0686",version:"1.7.12"},{name:"goodreads",hex:"F0D7B",version:"3.4.93"},{name:"google",hex:"F02AD",version:"1.5.54"},{name:"google-ads",hex:"F0C87",version:"3.2.89"},{name:"google-analytics",hex:"F07CC",version:"2.0.46"},{name:"google-assistant",hex:"F07CD",version:"2.0.46"},{name:"google-cardboard",hex:"F02AE",version:"1.5.54"},{name:"google-chrome",hex:"F02AF",version:"1.5.54"},{name:"google-circles",hex:"F02B0",version:"1.5.54"},{name:"google-circles-communities",hex:"F02B1",version:"1.5.54"},{name:"google-circles-extended",hex:"F02B2",version:"1.5.54"},{name:"google-circles-group",hex:"F02B3",version:"1.5.54"},{name:"google-classroom",hex:"F02C0",version:"1.5.54"},{name:"google-cloud",hex:"F11F6",version:"4.6.95"},{name:"google-controller",hex:"F02B4",version:"1.5.54"},{name:"google-controller-off",hex:"F02B5",version:"1.5.54"},{name:"google-downasaur",hex:"F1362",version:"4.9.95"},{name:"google-drive",hex:"F02B6",version:"1.5.54"},{name:"google-earth",hex:"F02B7",version:"1.5.54"},{name:"google-fit",hex:"F096C",version:"2.4.85"},{name:"google-glass",hex:"F02B8",version:"1.5.54"},{name:"google-hangouts",hex:"F02C9",version:"1.5.54"},{name:"google-home",hex:"F0824",version:"2.1.19"},{name:"google-keep",hex:"F06DC",version:"1.8.36"},{name:"google-lens",hex:"F09F6",version:"2.5.94"},{name:"google-maps",hex:"F05F5",version:"1.5.54"},{name:"google-my-business",hex:"F1048",version:"4.1.95"},{name:"google-nearby",hex:"F02B9",version:"1.5.54"},{name:"google-play",hex:"F02BC",version:"1.5.54"},{name:"google-plus",hex:"F02BD",version:"1.5.54"},{name:"google-podcast",hex:"F0EB9",version:"3.7.94"},{name:"google-spreadsheet",hex:"F09F7",version:"2.5.94"},{name:"google-street-view",hex:"F0C88",version:"3.2.89"},{name:"google-translate",hex:"F02BF",version:"1.5.54"},{name:"gradient-horizontal",hex:"F174A",version:"6.1.95"},{name:"gradient-vertical",hex:"F06A0",version:"1.7.12"},{name:"grain",hex:"F0D7C",version:"3.4.93"},{name:"graph",hex:"F1049",version:"4.1.95"},{name:"graph-outline",hex:"F104A",version:"4.1.95"},{name:"graphql",hex:"F0877",version:"2.1.99"},{name:"grass",hex:"F1510",version:"5.4.55"},{name:"grave-stone",hex:"F0BA2",version:"3.0.39"},{name:"grease-pencil",hex:"F0648",version:"1.6.50"},{name:"greater-than",hex:"F096D",version:"2.4.85"},{name:"greater-than-or-equal",hex:"F096E",version:"2.4.85"},{name:"greenhouse",hex:"F002D",version:"1.5.54"},{name:"grid",hex:"F02C1",version:"1.5.54"},{name:"grid-large",hex:"F0758",version:"1.9.32"},{name:"grid-off",hex:"F02C2",version:"1.5.54"},{name:"grill",hex:"F0E45",version:"3.6.95"},{name:"grill-outline",hex:"F118A",version:"4.4.95"},{name:"group",hex:"F02C3",version:"1.5.54"},{name:"guitar-acoustic",hex:"F0771",version:"1.9.32"},{name:"guitar-electric",hex:"F02C4",version:"1.5.54"},{name:"guitar-pick",hex:"F02C5",version:"1.5.54"},{name:"guitar-pick-outline",hex:"F02C6",version:"1.5.54"},{name:"guy-fawkes-mask",hex:"F0825",version:"2.1.19"},{name:"hail",hex:"F0AC1",version:"2.7.94"},{name:"hair-dryer",hex:"F10EF",version:"4.3.95"},{name:"hair-dryer-outline",hex:"F10F0",version:"4.3.95"},{name:"halloween",hex:"F0BA3",version:"3.0.39"},{name:"hamburger",hex:"F0685",version:"1.7.12"},{name:"hamburger-check",hex:"F1776",version:"6.1.95"},{name:"hamburger-minus",hex:"F1777",version:"6.1.95"},{name:"hamburger-off",hex:"F1778",version:"6.1.95"},{name:"hamburger-plus",hex:"F1779",version:"6.1.95"},{name:"hamburger-remove",hex:"F177A",version:"6.1.95"},{name:"hammer",hex:"F08EA",version:"2.3.50"},{name:"hammer-screwdriver",hex:"F1322",version:"4.9.95"},{name:"hammer-sickle",hex:"F1887",version:"6.2.95"},{name:"hammer-wrench",hex:"F1323",version:"4.9.95"},{name:"hand-back-left",hex:"F0E46",version:"3.6.95"},{name:"hand-back-left-off",hex:"F1830",version:"6.1.95"},{name:"hand-back-left-off-outline",hex:"F1832",version:"6.1.95"},{name:"hand-back-left-outline",hex:"F182C",version:"6.1.95"},{name:"hand-back-right",hex:"F0E47",version:"3.6.95"},{name:"hand-back-right-off",hex:"F1831",version:"6.1.95"},{name:"hand-back-right-off-outline",hex:"F1833",version:"6.1.95"},{name:"hand-back-right-outline",hex:"F182D",version:"6.1.95"},{name:"hand-clap",hex:"F194B",version:"6.4.95"},{name:"hand-coin",hex:"F188F",version:"6.2.95"},{name:"hand-coin-outline",hex:"F1890",version:"6.2.95"},{name:"hand-extended",hex:"F18B6",version:"6.3.95"},{name:"hand-extended-outline",hex:"F18B7",version:"6.3.95"},{name:"hand-front-left",hex:"F182B",version:"6.1.95"},{name:"hand-front-left-outline",hex:"F182E",version:"6.1.95"},{name:"hand-front-right",hex:"F0A4F",version:"2.6.95"},{name:"hand-front-right-outline",hex:"F182F",version:"6.1.95"},{name:"hand-heart",hex:"F10F1",version:"4.3.95"},{name:"hand-heart-outline",hex:"F157E",version:"5.5.55"},{name:"hand-okay",hex:"F0A50",version:"2.6.95"},{name:"hand-peace",hex:"F0A51",version:"2.6.95"},{name:"hand-peace-variant",hex:"F0A52",version:"2.6.95"},{name:"hand-pointing-down",hex:"F0A53",version:"2.6.95"},{name:"hand-pointing-left",hex:"F0A54",version:"2.6.95"},{name:"hand-pointing-right",hex:"F02C7",version:"1.5.54"},{name:"hand-pointing-up",hex:"F0A55",version:"2.6.95"},{name:"hand-saw",hex:"F0E48",version:"3.6.95"},{name:"hand-wash",hex:"F157F",version:"5.5.55"},{name:"hand-wash-outline",hex:"F1580",version:"5.5.55"},{name:"hand-water",hex:"F139F",version:"5.0.45"},{name:"hand-wave",hex:"F1821",version:"6.1.95"},{name:"hand-wave-outline",hex:"F1822",version:"6.1.95"},{name:"handball",hex:"F0F53",version:"3.9.97"},{name:"handcuffs",hex:"F113E",version:"4.4.95"},{name:"hands-pray",hex:"F0579",version:"1.5.54"},{name:"handshake",hex:"F1218",version:"4.6.95"},{name:"handshake-outline",hex:"F15A1",version:"5.5.55"},{name:"hanger",hex:"F02C8",version:"1.5.54"},{name:"hard-hat",hex:"F096F",version:"2.4.85"},{name:"harddisk",hex:"F02CA",version:"1.5.54"},{name:"harddisk-plus",hex:"F104B",version:"4.1.95"},{name:"harddisk-remove",hex:"F104C",version:"4.1.95"},{name:"hat-fedora",hex:"F0BA4",version:"3.0.39"},{name:"hazard-lights",hex:"F0C89",version:"3.2.89"},{name:"hdr",hex:"F0D7D",version:"3.4.93"},{name:"hdr-off",hex:"F0D7E",version:"3.4.93"},{name:"head",hex:"F135E",version:"4.9.95"},{name:"head-alert",hex:"F1338",version:"4.9.95"},{name:"head-alert-outline",hex:"F1339",version:"4.9.95"},{name:"head-check",hex:"F133A",version:"4.9.95"},{name:"head-check-outline",hex:"F133B",version:"4.9.95"},{name:"head-cog",hex:"F133C",version:"4.9.95"},{name:"head-cog-outline",hex:"F133D",version:"4.9.95"},{name:"head-dots-horizontal",hex:"F133E",version:"4.9.95"},{name:"head-dots-horizontal-outline",hex:"F133F",version:"4.9.95"},{name:"head-flash",hex:"F1340",version:"4.9.95"},{name:"head-flash-outline",hex:"F1341",version:"4.9.95"},{name:"head-heart",hex:"F1342",version:"4.9.95"},{name:"head-heart-outline",hex:"F1343",version:"4.9.95"},{name:"head-lightbulb",hex:"F1344",version:"4.9.95"},{name:"head-lightbulb-outline",hex:"F1345",version:"4.9.95"},{name:"head-minus",hex:"F1346",version:"4.9.95"},{name:"head-minus-outline",hex:"F1347",version:"4.9.95"},{name:"head-outline",hex:"F135F",version:"4.9.95"},{name:"head-plus",hex:"F1348",version:"4.9.95"},{name:"head-plus-outline",hex:"F1349",version:"4.9.95"},{name:"head-question",hex:"F134A",version:"4.9.95"},{name:"head-question-outline",hex:"F134B",version:"4.9.95"},{name:"head-remove",hex:"F134C",version:"4.9.95"},{name:"head-remove-outline",hex:"F134D",version:"4.9.95"},{name:"head-snowflake",hex:"F134E",version:"4.9.95"},{name:"head-snowflake-outline",hex:"F134F",version:"4.9.95"},{name:"head-sync",hex:"F1350",version:"4.9.95"},{name:"head-sync-outline",hex:"F1351",version:"4.9.95"},{name:"headphones",hex:"F02CB",version:"1.5.54"},{name:"headphones-bluetooth",hex:"F0970",version:"2.4.85"},{name:"headphones-box",hex:"F02CC",version:"1.5.54"},{name:"headphones-off",hex:"F07CE",version:"2.0.46"},{name:"headphones-settings",hex:"F02CD",version:"1.5.54"},{name:"headset",hex:"F02CE",version:"1.5.54"},{name:"headset-dock",hex:"F02CF",version:"1.5.54"},{name:"headset-off",hex:"F02D0",version:"1.5.54"},{name:"heart",hex:"F02D1",version:"1.5.54"},{name:"heart-box",hex:"F02D2",version:"1.5.54"},{name:"heart-box-outline",hex:"F02D3",version:"1.5.54"},{name:"heart-broken",hex:"F02D4",version:"1.5.54"},{name:"heart-broken-outline",hex:"F0D14",version:"3.3.92"},{name:"heart-circle",hex:"F0971",version:"2.4.85"},{name:"heart-circle-outline",hex:"F0972",version:"2.4.85"},{name:"heart-cog",hex:"F1663",version:"5.7.55"},{name:"heart-cog-outline",hex:"F1664",version:"5.7.55"},{name:"heart-flash",hex:"F0EF9",version:"3.8.95"},{name:"heart-half",hex:"F06DF",version:"1.8.36"},{name:"heart-half-full",hex:"F06DE",version:"1.8.36"},{name:"heart-half-outline",hex:"F06E0",version:"1.8.36"},{name:"heart-minus",hex:"F142F",version:"5.2.45"},{name:"heart-minus-outline",hex:"F1432",version:"5.2.45"},{name:"heart-multiple",hex:"F0A56",version:"2.6.95"},{name:"heart-multiple-outline",hex:"F0A57",version:"2.6.95"},{name:"heart-off",hex:"F0759",version:"1.9.32"},{name:"heart-off-outline",hex:"F1434",version:"5.2.45"},{name:"heart-outline",hex:"F02D5",version:"1.5.54"},{name:"heart-plus",hex:"F142E",version:"5.2.45"},{name:"heart-plus-outline",hex:"F1431",version:"5.2.45"},{name:"heart-pulse",hex:"F05F6",version:"1.5.54"},{name:"heart-remove",hex:"F1430",version:"5.2.45"},{name:"heart-remove-outline",hex:"F1433",version:"5.2.45"},{name:"heart-settings",hex:"F1665",version:"5.7.55"},{name:"heart-settings-outline",hex:"F1666",version:"5.7.55"},{name:"helicopter",hex:"F0AC2",version:"2.7.94"},{name:"help",hex:"F02D6",version:"1.5.54"},{name:"help-box",hex:"F078B",version:"1.9.32"},{name:"help-circle",hex:"F02D7",version:"1.5.54"},{name:"help-circle-outline",hex:"F0625",version:"1.6.50"},{name:"help-network",hex:"F06F5",version:"1.8.36"},{name:"help-network-outline",hex:"F0C8A",version:"3.2.89"},{name:"help-rhombus",hex:"F0BA5",version:"3.0.39"},{name:"help-rhombus-outline",hex:"F0BA6",version:"3.0.39"},{name:"hexadecimal",hex:"F12A7",version:"4.7.95"},{name:"hexagon",hex:"F02D8",version:"1.5.54"},{name:"hexagon-multiple",hex:"F06E1",version:"1.8.36"},{name:"hexagon-multiple-outline",hex:"F10F2",version:"4.3.95"},{name:"hexagon-outline",hex:"F02D9",version:"1.5.54"},{name:"hexagon-slice-1",hex:"F0AC3",version:"2.7.94"},{name:"hexagon-slice-2",hex:"F0AC4",version:"2.7.94"},{name:"hexagon-slice-3",hex:"F0AC5",version:"2.7.94"},{name:"hexagon-slice-4",hex:"F0AC6",version:"2.7.94"},{name:"hexagon-slice-5",hex:"F0AC7",version:"2.7.94"},{name:"hexagon-slice-6",hex:"F0AC8",version:"2.7.94"},{name:"hexagram",hex:"F0AC9",version:"2.7.94"},{name:"hexagram-outline",hex:"F0ACA",version:"2.7.94"},{name:"high-definition",hex:"F07CF",version:"2.0.46"},{name:"high-definition-box",hex:"F0878",version:"2.1.99"},{name:"highway",hex:"F05F7",version:"1.5.54"},{name:"hiking",hex:"F0D7F",version:"3.4.93"},{name:"history",hex:"F02DA",version:"1.5.54"},{name:"hockey-puck",hex:"F0879",version:"2.1.99"},{name:"hockey-sticks",hex:"F087A",version:"2.1.99"},{name:"hololens",hex:"F02DB",version:"1.5.54"},{name:"home",hex:"F02DC",version:"1.5.54"},{name:"home-account",hex:"F0826",version:"2.1.19"},{name:"home-alert",hex:"F087B",version:"2.1.99"},{name:"home-alert-outline",hex:"F15D0",version:"5.6.55"},{name:"home-analytics",hex:"F0EBA",version:"3.7.94"},{name:"home-assistant",hex:"F07D0",version:"2.0.46"},{name:"home-automation",hex:"F07D1",version:"2.0.46"},{name:"home-battery",hex:"F1901",version:"6.4.95"},{name:"home-battery-outline",hex:"F1902",version:"6.4.95"},{name:"home-circle",hex:"F07D2",version:"2.0.46"},{name:"home-circle-outline",hex:"F104D",version:"4.1.95"},{name:"home-city",hex:"F0D15",version:"3.3.92"},{name:"home-city-outline",hex:"F0D16",version:"3.3.92"},{name:"home-edit",hex:"F1159",version:"4.4.95"},{name:"home-edit-outline",hex:"F115A",version:"4.4.95"},{name:"home-export-outline",hex:"F0F9B",version:"3.9.97"},{name:"home-flood",hex:"F0EFA",version:"3.8.95"},{name:"home-floor-0",hex:"F0DD2",version:"3.5.94"},{name:"home-floor-1",hex:"F0D80",version:"3.4.93"},{name:"home-floor-2",hex:"F0D81",version:"3.4.93"},{name:"home-floor-3",hex:"F0D82",version:"3.4.93"},{name:"home-floor-a",hex:"F0D83",version:"3.4.93"},{name:"home-floor-b",hex:"F0D84",version:"3.4.93"},{name:"home-floor-g",hex:"F0D85",version:"3.4.93"},{name:"home-floor-l",hex:"F0D86",version:"3.4.93"},{name:"home-floor-negative-1",hex:"F0DD3",version:"3.5.94"},{name:"home-group",hex:"F0DD4",version:"3.5.94"},{name:"home-group-minus",hex:"F19C1",version:"6.5.95"},{name:"home-group-plus",hex:"F19C0",version:"6.5.95"},{name:"home-group-remove",hex:"F19C2",version:"6.5.95"},{name:"home-heart",hex:"F0827",version:"2.1.19"},{name:"home-import-outline",hex:"F0F9C",version:"3.9.97"},{name:"home-lightbulb",hex:"F1251",version:"4.6.95"},{name:"home-lightbulb-outline",hex:"F1252",version:"4.6.95"},{name:"home-lightning-bolt",hex:"F1903",version:"6.4.95"},{name:"home-lightning-bolt-outline",hex:"F1904",version:"6.4.95"},{name:"home-lock",hex:"F08EB",version:"2.3.50"},{name:"home-lock-open",hex:"F08EC",version:"2.3.50"},{name:"home-map-marker",hex:"F05F8",version:"1.5.54"},{name:"home-minus",hex:"F0974",version:"2.4.85"},{name:"home-minus-outline",hex:"F13D5",version:"5.1.45"},{name:"home-modern",hex:"F02DD",version:"1.5.54"},{name:"home-outline",hex:"F06A1",version:"1.7.12"},{name:"home-plus",hex:"F0975",version:"2.4.85"},{name:"home-plus-outline",hex:"F13D6",version:"5.1.45"},{name:"home-remove",hex:"F1247",version:"4.6.95"},{name:"home-remove-outline",hex:"F13D7",version:"5.1.45"},{name:"home-roof",hex:"F112B",version:"4.3.95"},{name:"home-search",hex:"F13B0",version:"5.0.45"},{name:"home-search-outline",hex:"F13B1",version:"5.0.45"},{name:"home-switch",hex:"F1794",version:"6.1.95"},{name:"home-switch-outline",hex:"F1795",version:"6.1.95"},{name:"home-thermometer",hex:"F0F54",version:"3.9.97"},{name:"home-thermometer-outline",hex:"F0F55",version:"3.9.97"},{name:"home-variant",hex:"F02DE",version:"1.5.54"},{name:"home-variant-outline",hex:"F0BA7",version:"3.0.39"},{name:"hook",hex:"F06E2",version:"1.8.36"},{name:"hook-off",hex:"F06E3",version:"1.8.36"},{name:"hoop-house",hex:"F0E56",version:"3.6.95"},{name:"hops",hex:"F02DF",version:"1.5.54"},{name:"horizontal-rotate-clockwise",hex:"F10F3",version:"4.3.95"},{name:"horizontal-rotate-counterclockwise",hex:"F10F4",version:"4.3.95"},{name:"horse",hex:"F15BF",version:"5.6.55"},{name:"horse-human",hex:"F15C0",version:"5.6.55"},{name:"horse-variant",hex:"F15C1",version:"5.6.55"},{name:"horse-variant-fast",hex:"F186E",version:"6.2.95"},{name:"horseshoe",hex:"F0A58",version:"2.6.95"},{name:"hospital",hex:"F0FF6",version:"4.0.96"},{name:"hospital-box",hex:"F02E0",version:"1.5.54"},{name:"hospital-box-outline",hex:"F0FF7",version:"4.0.96"},{name:"hospital-building",hex:"F02E1",version:"1.5.54"},{name:"hospital-marker",hex:"F02E2",version:"1.5.54"},{name:"hot-tub",hex:"F0828",version:"2.1.19"},{name:"hours-24",hex:"F1478",version:"5.2.45"},{name:"hubspot",hex:"F0D17",version:"3.3.92"},{name:"hulu",hex:"F0829",version:"2.1.19"},{name:"human",hex:"F02E6",version:"1.5.54"},{name:"human-baby-changing-table",hex:"F138B",version:"5.0.45"},{name:"human-cane",hex:"F1581",version:"5.5.55"},{name:"human-capacity-decrease",hex:"F159B",version:"5.5.55"},{name:"human-capacity-increase",hex:"F159C",version:"5.5.55"},{name:"human-child",hex:"F02E7",version:"1.5.54"},{name:"human-dolly",hex:"F1980",version:"6.5.95"},{name:"human-edit",hex:"F14E8",version:"5.4.55"},{name:"human-female",hex:"F0649",version:"1.6.50"},{name:"human-female-boy",hex:"F0A59",version:"2.6.95"},{name:"human-female-dance",hex:"F15C9",version:"5.6.55"},{name:"human-female-female",hex:"F0A5A",version:"2.6.95"},{name:"human-female-girl",hex:"F0A5B",version:"2.6.95"},{name:"human-greeting",hex:"F17C4",version:"6.1.95"},{name:"human-greeting-proximity",hex:"F159D",version:"5.5.55"},{name:"human-greeting-variant",hex:"F064A",version:"1.6.50"},{name:"human-handsdown",hex:"F064B",version:"1.6.50"},{name:"human-handsup",hex:"F064C",version:"1.6.50"},{name:"human-male",hex:"F064D",version:"1.6.50"},{name:"human-male-board",hex:"F0890",version:"2.1.99"},{name:"human-male-board-poll",hex:"F0846",version:"2.1.19"},{name:"human-male-boy",hex:"F0A5C",version:"2.6.95"},{name:"human-male-child",hex:"F138C",version:"5.0.45"},{name:"human-male-female",hex:"F02E8",version:"1.5.54"},{name:"human-male-female-child",hex:"F1823",version:"6.1.95"},{name:"human-male-girl",hex:"F0A5D",version:"2.6.95"},{name:"human-male-height",hex:"F0EFB",version:"3.8.95"},{name:"human-male-height-variant",hex:"F0EFC",version:"3.8.95"},{name:"human-male-male",hex:"F0A5E",version:"2.6.95"},{name:"human-non-binary",hex:"F1848",version:"6.2.95"},{name:"human-pregnant",hex:"F05CF",version:"1.5.54"},{name:"human-queue",hex:"F1571",version:"5.5.55"},{name:"human-scooter",hex:"F11E9",version:"4.5.95"},{name:"human-wheelchair",hex:"F138D",version:"5.0.45"},{name:"human-white-cane",hex:"F1981",version:"6.5.95"},{name:"humble-bundle",hex:"F0744",version:"1.9.32"},{name:"hvac",hex:"F1352",version:"4.9.95"},{name:"hvac-off",hex:"F159E",version:"5.5.55"},{name:"hydraulic-oil-level",hex:"F1324",version:"4.9.95"},{name:"hydraulic-oil-temperature",hex:"F1325",version:"4.9.95"},{name:"hydro-power",hex:"F12E5",version:"4.8.95"},{name:"hydrogen-station",hex:"F1894",version:"6.2.95"},{name:"ice-cream",hex:"F082A",version:"2.1.19"},{name:"ice-cream-off",hex:"F0E52",version:"3.6.95"},{name:"ice-pop",hex:"F0EFD",version:"3.8.95"},{name:"id-card",hex:"F0FC0",version:"4.0.96"},{name:"identifier",hex:"F0EFE",version:"3.8.95"},{name:"ideogram-cjk",hex:"F1331",version:"4.9.95"},{name:"ideogram-cjk-variant",hex:"F1332",version:"4.9.95"},{name:"image",hex:"F02E9",version:"1.5.54"},{name:"image-album",hex:"F02EA",version:"1.5.54"},{name:"image-area",hex:"F02EB",version:"1.5.54"},{name:"image-area-close",hex:"F02EC",version:"1.5.54"},{name:"image-auto-adjust",hex:"F0FC1",version:"4.0.96"},{name:"image-broken",hex:"F02ED",version:"1.5.54"},{name:"image-broken-variant",hex:"F02EE",version:"1.5.54"},{name:"image-edit",hex:"F11E3",version:"4.5.95"},{name:"image-edit-outline",hex:"F11E4",version:"4.5.95"},{name:"image-filter-black-white",hex:"F02F0",version:"1.5.54"},{name:"image-filter-center-focus",hex:"F02F1",version:"1.5.54"},{name:"image-filter-center-focus-strong",hex:"F0EFF",version:"3.8.95"},{name:"image-filter-center-focus-strong-outline",hex:"F0F00",version:"3.8.95"},{name:"image-filter-center-focus-weak",hex:"F02F2",version:"1.5.54"},{name:"image-filter-drama",hex:"F02F3",version:"1.5.54"},{name:"image-filter-frames",hex:"F02F4",version:"1.5.54"},{name:"image-filter-hdr",hex:"F02F5",version:"1.5.54"},{name:"image-filter-none",hex:"F02F6",version:"1.5.54"},{name:"image-filter-tilt-shift",hex:"F02F7",version:"1.5.54"},{name:"image-filter-vintage",hex:"F02F8",version:"1.5.54"},{name:"image-frame",hex:"F0E49",version:"3.6.95"},{name:"image-marker",hex:"F177B",version:"6.1.95"},{name:"image-marker-outline",hex:"F177C",version:"6.1.95"},{name:"image-minus",hex:"F1419",version:"5.1.45"},{name:"image-move",hex:"F09F8",version:"2.5.94"},{name:"image-multiple",hex:"F02F9",version:"1.5.54"},{name:"image-multiple-outline",hex:"F02EF",version:"1.5.54"},{name:"image-off",hex:"F082B",version:"2.1.19"},{name:"image-off-outline",hex:"F11D1",version:"4.5.95"},{name:"image-outline",hex:"F0976",version:"2.4.85"},{name:"image-plus",hex:"F087C",version:"2.1.99"},{name:"image-remove",hex:"F1418",version:"5.1.45"},{name:"image-search",hex:"F0977",version:"2.4.85"},{name:"image-search-outline",hex:"F0978",version:"2.4.85"},{name:"image-size-select-actual",hex:"F0C8D",version:"3.2.89"},{name:"image-size-select-large",hex:"F0C8E",version:"3.2.89"},{name:"image-size-select-small",hex:"F0C8F",version:"3.2.89"},{name:"image-text",hex:"F160D",version:"5.6.55"},{name:"import",hex:"F02FA",version:"1.5.54"},{name:"inbox",hex:"F0687",version:"1.7.12"},{name:"inbox-arrow-down",hex:"F02FB",version:"1.5.54"},{name:"inbox-arrow-down-outline",hex:"F1270",version:"4.7.95"},{name:"inbox-arrow-up",hex:"F03D1",version:"1.5.54"},{name:"inbox-arrow-up-outline",hex:"F1271",version:"4.7.95"},{name:"inbox-full",hex:"F1272",version:"4.7.95"},{name:"inbox-full-outline",hex:"F1273",version:"4.7.95"},{name:"inbox-multiple",hex:"F08B0",version:"2.2.43"},{name:"inbox-multiple-outline",hex:"F0BA8",version:"3.0.39"},{name:"inbox-outline",hex:"F1274",version:"4.7.95"},{name:"inbox-remove",hex:"F159F",version:"5.5.55"},{name:"inbox-remove-outline",hex:"F15A0",version:"5.5.55"},{name:"incognito",hex:"F05F9",version:"1.5.54"},{name:"incognito-circle",hex:"F1421",version:"5.2.45"},{name:"incognito-circle-off",hex:"F1422",version:"5.2.45"},{name:"incognito-off",hex:"F0075",version:"1.5.54"},{name:"induction",hex:"F184C",version:"6.2.95"},{name:"infinity",hex:"F06E4",version:"1.8.36"},{name:"information",hex:"F02FC",version:"1.5.54"},{name:"information-off",hex:"F178C",version:"6.1.95"},{name:"information-off-outline",hex:"F178D",version:"6.1.95"},{name:"information-outline",hex:"F02FD",version:"1.5.54"},{name:"information-variant",hex:"F064E",version:"1.6.50"},{name:"instagram",hex:"F02FE",version:"1.5.54"},{name:"instrument-triangle",hex:"F104E",version:"4.1.95"},{name:"integrated-circuit-chip",hex:"F1913",version:"6.4.95"},{name:"invert-colors",hex:"F0301",version:"1.5.54"},{name:"invert-colors-off",hex:"F0E4A",version:"3.6.95"},{name:"iobroker",hex:"F12E8",version:"4.8.95"},{name:"ip",hex:"F0A5F",version:"2.6.95"},{name:"ip-network",hex:"F0A60",version:"2.6.95"},{name:"ip-network-outline",hex:"F0C90",version:"3.2.89"},{name:"ip-outline",hex:"F1982",version:"6.5.95"},{name:"ipod",hex:"F0C91",version:"3.2.89"},{name:"iron",hex:"F1824",version:"6.1.95"},{name:"iron-board",hex:"F1838",version:"6.2.95"},{name:"iron-outline",hex:"F1825",version:"6.1.95"},{name:"island",hex:"F104F",version:"4.1.95"},{name:"iv-bag",hex:"F10B9",version:"4.2.95"},{name:"jabber",hex:"F0DD5",version:"3.5.94"},{name:"jeepney",hex:"F0302",version:"1.5.54"},{name:"jellyfish",hex:"F0F01",version:"3.8.95"},{name:"jellyfish-outline",hex:"F0F02",version:"3.8.95"},{name:"jira",hex:"F0303",version:"1.5.54"},{name:"jquery",hex:"F087D",version:"2.1.99"},{name:"jsfiddle",hex:"F0304",version:"1.5.54"},{name:"jump-rope",hex:"F12FF",version:"4.8.95"},{name:"kabaddi",hex:"F0D87",version:"3.4.93"},{name:"kangaroo",hex:"F1558",version:"5.5.55"},{name:"karate",hex:"F082C",version:"2.1.19"},{name:"kayaking",hex:"F08AF",version:"2.2.43"},{name:"keg",hex:"F0305",version:"1.5.54"},{name:"kettle",hex:"F05FA",version:"1.5.54"},{name:"kettle-alert",hex:"F1317",version:"4.8.95"},{name:"kettle-alert-outline",hex:"F1318",version:"4.8.95"},{name:"kettle-off",hex:"F131B",version:"4.8.95"},{name:"kettle-off-outline",hex:"F131C",version:"4.8.95"},{name:"kettle-outline",hex:"F0F56",version:"3.9.97"},{name:"kettle-pour-over",hex:"F173C",version:"5.9.55"},{name:"kettle-steam",hex:"F1319",version:"4.8.95"},{name:"kettle-steam-outline",hex:"F131A",version:"4.8.95"},{name:"kettlebell",hex:"F1300",version:"4.8.95"},{name:"key",hex:"F0306",version:"1.5.54"},{name:"key-alert",hex:"F1983",version:"6.5.95"},{name:"key-alert-outline",hex:"F1984",version:"6.5.95"},{name:"key-arrow-right",hex:"F1312",version:"4.8.95"},{name:"key-chain",hex:"F1574",version:"5.5.55"},{name:"key-chain-variant",hex:"F1575",version:"5.5.55"},{name:"key-change",hex:"F0307",version:"1.5.54"},{name:"key-link",hex:"F119F",version:"4.4.95"},{name:"key-minus",hex:"F0308",version:"1.5.54"},{name:"key-outline",hex:"F0DD6",version:"3.5.94"},{name:"key-plus",hex:"F0309",version:"1.5.54"},{name:"key-remove",hex:"F030A",version:"1.5.54"},{name:"key-star",hex:"F119E",version:"4.4.95"},{name:"key-variant",hex:"F030B",version:"1.5.54"},{name:"key-wireless",hex:"F0FC2",version:"4.0.96"},{name:"keyboard",hex:"F030C",version:"1.5.54"},{name:"keyboard-backspace",hex:"F030D",version:"1.5.54"},{name:"keyboard-caps",hex:"F030E",version:"1.5.54"},{name:"keyboard-close",hex:"F030F",version:"1.5.54"},{name:"keyboard-esc",hex:"F12B7",version:"4.7.95"},{name:"keyboard-f1",hex:"F12AB",version:"4.7.95"},{name:"keyboard-f10",hex:"F12B4",version:"4.7.95"},{name:"keyboard-f11",hex:"F12B5",version:"4.7.95"},{name:"keyboard-f12",hex:"F12B6",version:"4.7.95"},{name:"keyboard-f2",hex:"F12AC",version:"4.7.95"},{name:"keyboard-f3",hex:"F12AD",version:"4.7.95"},{name:"keyboard-f4",hex:"F12AE",version:"4.7.95"},{name:"keyboard-f5",hex:"F12AF",version:"4.7.95"},{name:"keyboard-f6",hex:"F12B0",version:"4.7.95"},{name:"keyboard-f7",hex:"F12B1",version:"4.7.95"},{name:"keyboard-f8",hex:"F12B2",version:"4.7.95"},{name:"keyboard-f9",hex:"F12B3",version:"4.7.95"},{name:"keyboard-off",hex:"F0310",version:"1.5.54"},{name:"keyboard-off-outline",hex:"F0E4B",version:"3.6.95"},{name:"keyboard-outline",hex:"F097B",version:"2.4.85"},{name:"keyboard-return",hex:"F0311",version:"1.5.54"},{name:"keyboard-settings",hex:"F09F9",version:"2.5.94"},{name:"keyboard-settings-outline",hex:"F09FA",version:"2.5.94"},{name:"keyboard-space",hex:"F1050",version:"4.1.95"},{name:"keyboard-tab",hex:"F0312",version:"1.5.54"},{name:"keyboard-tab-reverse",hex:"F0325",version:"1.5.54"},{name:"keyboard-variant",hex:"F0313",version:"1.5.54"},{name:"khanda",hex:"F10FD",version:"4.3.95"},{name:"kickstarter",hex:"F0745",version:"1.9.32"},{name:"kite",hex:"F1985",version:"6.5.95"},{name:"kite-outline",hex:"F1986",version:"6.5.95"},{name:"kitesurfing",hex:"F1744",version:"6.1.95"},{name:"klingon",hex:"F135B",version:"4.9.95"},{name:"knife",hex:"F09FB",version:"2.5.94"},{name:"knife-military",hex:"F09FC",version:"2.5.94"},{name:"koala",hex:"F173F",version:"5.9.55"},{name:"kodi",hex:"F0314",version:"1.5.54"},{name:"kubernetes",hex:"F10FE",version:"4.3.95"},{name:"label",hex:"F0315",version:"1.5.54"},{name:"label-multiple",hex:"F1375",version:"4.9.95"},{name:"label-multiple-outline",hex:"F1376",version:"4.9.95"},{name:"label-off",hex:"F0ACB",version:"2.7.94"},{name:"label-off-outline",hex:"F0ACC",version:"2.7.94"},{name:"label-outline",hex:"F0316",version:"1.5.54"},{name:"label-percent",hex:"F12EA",version:"4.8.95"},{name:"label-percent-outline",hex:"F12EB",version:"4.8.95"},{name:"label-variant",hex:"F0ACD",version:"2.7.94"},{name:"label-variant-outline",hex:"F0ACE",version:"2.7.94"},{name:"ladder",hex:"F15A2",version:"5.5.55"},{name:"ladybug",hex:"F082D",version:"2.1.19"},{name:"lambda",hex:"F0627",version:"1.6.50"},{name:"lamp",hex:"F06B5",version:"1.7.22"},{name:"lamp-outline",hex:"F17D0",version:"6.1.95"},{name:"lamps",hex:"F1576",version:"5.5.55"},{name:"lamps-outline",hex:"F17D1",version:"6.1.95"},{name:"lan",hex:"F0317",version:"1.5.54"},{name:"lan-check",hex:"F12AA",version:"4.7.95"},{name:"lan-connect",hex:"F0318",version:"1.5.54"},{name:"lan-disconnect",hex:"F0319",version:"1.5.54"},{name:"lan-pending",hex:"F031A",version:"1.5.54"},{name:"language-c",hex:"F0671",version:"1.6.50"},{name:"language-cpp",hex:"F0672",version:"1.6.50"},{name:"language-csharp",hex:"F031B",version:"1.5.54"},{name:"language-css3",hex:"F031C",version:"1.5.54"},{name:"language-fortran",hex:"F121A",version:"4.6.95"},{name:"language-go",hex:"F07D3",version:"2.0.46"},{name:"language-haskell",hex:"F0C92",version:"3.2.89"},{name:"language-html5",hex:"F031D",version:"1.5.54"},{name:"language-java",hex:"F0B37",version:"2.8.94"},{name:"language-javascript",hex:"F031E",version:"1.5.54"},{name:"language-kotlin",hex:"F1219",version:"4.6.95"},{name:"language-lua",hex:"F08B1",version:"2.2.43"},{name:"language-markdown",hex:"F0354",version:"1.5.54"},{name:"language-markdown-outline",hex:"F0F5B",version:"3.9.97"},{name:"language-php",hex:"F031F",version:"1.5.54"},{name:"language-python",hex:"F0320",version:"1.5.54"},{name:"language-r",hex:"F07D4",version:"2.0.46"},{name:"language-ruby",hex:"F0D2D",version:"3.3.92"},{name:"language-ruby-on-rails",hex:"F0ACF",version:"2.7.94"},{name:"language-rust",hex:"F1617",version:"5.6.55"},{name:"language-swift",hex:"F06E5",version:"1.8.36"},{name:"language-typescript",hex:"F06E6",version:"1.8.36"},{name:"language-xaml",hex:"F0673",version:"1.6.50"},{name:"laptop",hex:"F0322",version:"1.5.54"},{name:"laptop-off",hex:"F06E7",version:"1.8.36"},{name:"laravel",hex:"F0AD0",version:"2.7.94"},{name:"laser-pointer",hex:"F1484",version:"5.3.45"},{name:"lasso",hex:"F0F03",version:"3.8.95"},{name:"lastpass",hex:"F0446",version:"1.5.54"},{name:"latitude",hex:"F0F57",version:"3.9.97"},{name:"launch",hex:"F0327",version:"1.5.54"},{name:"lava-lamp",hex:"F07D5",version:"2.0.46"},{name:"layers",hex:"F0328",version:"1.5.54"},{name:"layers-edit",hex:"F1892",version:"6.2.95"},{name:"layers-minus",hex:"F0E4C",version:"3.6.95"},{name:"layers-off",hex:"F0329",version:"1.5.54"},{name:"layers-off-outline",hex:"F09FD",version:"2.5.94"},{name:"layers-outline",hex:"F09FE",version:"2.5.94"},{name:"layers-plus",hex:"F0E4D",version:"3.6.95"},{name:"layers-remove",hex:"F0E4E",version:"3.6.95"},{name:"layers-search",hex:"F1206",version:"4.6.95"},{name:"layers-search-outline",hex:"F1207",version:"4.6.95"},{name:"layers-triple",hex:"F0F58",version:"3.9.97"},{name:"layers-triple-outline",hex:"F0F59",version:"3.9.97"},{name:"lead-pencil",hex:"F064F",version:"1.6.50"},{name:"leaf",hex:"F032A",version:"1.5.54"},{name:"leaf-circle",hex:"F1905",version:"6.4.95"},{name:"leaf-circle-outline",hex:"F1906",version:"6.4.95"},{name:"leaf-maple",hex:"F0C93",version:"3.2.89"},{name:"leaf-maple-off",hex:"F12DA",version:"4.8.95"},{name:"leaf-off",hex:"F12D9",version:"4.8.95"},{name:"leak",hex:"F0DD7",version:"3.5.94"},{name:"leak-off",hex:"F0DD8",version:"3.5.94"},{name:"led-off",hex:"F032B",version:"1.5.54"},{name:"led-on",hex:"F032C",version:"1.5.54"},{name:"led-outline",hex:"F032D",version:"1.5.54"},{name:"led-strip",hex:"F07D6",version:"2.0.46"},{name:"led-strip-variant",hex:"F1051",version:"4.1.95"},{name:"led-variant-off",hex:"F032E",version:"1.5.54"},{name:"led-variant-on",hex:"F032F",version:"1.5.54"},{name:"led-variant-outline",hex:"F0330",version:"1.5.54"},{name:"leek",hex:"F117D",version:"4.4.95"},{name:"less-than",hex:"F097C",version:"2.4.85"},{name:"less-than-or-equal",hex:"F097D",version:"2.4.85"},{name:"library",hex:"F0331",version:"1.5.54"},{name:"library-shelves",hex:"F0BA9",version:"3.0.39"},{name:"license",hex:"F0FC3",version:"4.0.96"},{name:"lifebuoy",hex:"F087E",version:"2.1.99"},{name:"light-flood-down",hex:"F1987",version:"6.5.95"},{name:"light-flood-up",hex:"F1988",version:"6.5.95"},{name:"light-recessed",hex:"F179B",version:"6.1.95"},{name:"light-switch",hex:"F097E",version:"2.4.85"},{name:"lightbulb",hex:"F0335",version:"1.5.54"},{name:"lightbulb-auto",hex:"F1800",version:"6.1.95"},{name:"lightbulb-auto-outline",hex:"F1801",version:"6.1.95"},{name:"lightbulb-cfl",hex:"F1208",version:"4.6.95"},{name:"lightbulb-cfl-off",hex:"F1209",version:"4.6.95"},{name:"lightbulb-cfl-spiral",hex:"F1275",version:"4.7.95"},{name:"lightbulb-cfl-spiral-off",hex:"F12C3",version:"4.8.95"},{name:"lightbulb-fluorescent-tube",hex:"F1804",version:"6.1.95"},{name:"lightbulb-fluorescent-tube-outline",hex:"F1805",version:"6.1.95"},{name:"lightbulb-group",hex:"F1253",version:"4.6.95"},{name:"lightbulb-group-off",hex:"F12CD",version:"4.8.95"},{name:"lightbulb-group-off-outline",hex:"F12CE",version:"4.8.95"},{name:"lightbulb-group-outline",hex:"F1254",version:"4.6.95"},{name:"lightbulb-multiple",hex:"F1255",version:"4.6.95"},{name:"lightbulb-multiple-off",hex:"F12CF",version:"4.8.95"},{name:"lightbulb-multiple-off-outline",hex:"F12D0",version:"4.8.95"},{name:"lightbulb-multiple-outline",hex:"F1256",version:"4.6.95"},{name:"lightbulb-off",hex:"F0E4F",version:"3.6.95"},{name:"lightbulb-off-outline",hex:"F0E50",version:"3.6.95"},{name:"lightbulb-on",hex:"F06E8",version:"1.8.36"},{name:"lightbulb-on-outline",hex:"F06E9",version:"1.8.36"},{name:"lightbulb-outline",hex:"F0336",version:"1.5.54"},{name:"lightbulb-spot",hex:"F17F4",version:"6.1.95"},{name:"lightbulb-spot-off",hex:"F17F5",version:"6.1.95"},{name:"lightbulb-variant",hex:"F1802",version:"6.1.95"},{name:"lightbulb-variant-outline",hex:"F1803",version:"6.1.95"},{name:"lighthouse",hex:"F09FF",version:"2.5.94"},{name:"lighthouse-on",hex:"F0A00",version:"2.5.94"},{name:"lightning-bolt",hex:"F140B",version:"5.1.45"},{name:"lightning-bolt-circle",hex:"F0820",version:"2.1.19"},{name:"lightning-bolt-outline",hex:"F140C",version:"5.1.45"},{name:"line-scan",hex:"F0624",version:"1.6.50"},{name:"lingerie",hex:"F1476",version:"5.2.45"},{name:"link",hex:"F0337",version:"1.5.54"},{name:"link-box",hex:"F0D1A",version:"3.3.92"},{name:"link-box-outline",hex:"F0D1B",version:"3.3.92"},{name:"link-box-variant",hex:"F0D1C",version:"3.3.92"},{name:"link-box-variant-outline",hex:"F0D1D",version:"3.3.92"},{name:"link-lock",hex:"F10BA",version:"4.2.95"},{name:"link-off",hex:"F0338",version:"1.5.54"},{name:"link-plus",hex:"F0C94",version:"3.2.89"},{name:"link-variant",hex:"F0339",version:"1.5.54"},{name:"link-variant-minus",hex:"F10FF",version:"4.3.95"},{name:"link-variant-off",hex:"F033A",version:"1.5.54"},{name:"link-variant-plus",hex:"F1100",version:"4.3.95"},{name:"link-variant-remove",hex:"F1101",version:"4.3.95"},{name:"linkedin",hex:"F033B",version:"1.5.54"},{name:"linux",hex:"F033D",version:"1.5.54"},{name:"linux-mint",hex:"F08ED",version:"2.3.50"},{name:"lipstick",hex:"F13B5",version:"5.0.45"},{name:"liquid-spot",hex:"F1826",version:"6.1.95"},{name:"liquor",hex:"F191E",version:"6.4.95"},{name:"list-status",hex:"F15AB",version:"5.5.55"},{name:"litecoin",hex:"F0A61",version:"2.6.95"},{name:"loading",hex:"F0772",version:"1.9.32"},{name:"location-enter",hex:"F0FC4",version:"4.0.96"},{name:"location-exit",hex:"F0FC5",version:"4.0.96"},{name:"lock",hex:"F033E",version:"1.5.54"},{name:"lock-alert",hex:"F08EE",version:"2.3.50"},{name:"lock-alert-outline",hex:"F15D1",version:"5.6.55"},{name:"lock-check",hex:"F139A",version:"5.0.45"},{name:"lock-check-outline",hex:"F16A8",version:"5.8.55"},{name:"lock-clock",hex:"F097F",version:"2.4.85"},{name:"lock-minus",hex:"F16A9",version:"5.8.55"},{name:"lock-minus-outline",hex:"F16AA",version:"5.8.55"},{name:"lock-off",hex:"F1671",version:"5.7.55"},{name:"lock-off-outline",hex:"F1672",version:"5.7.55"},{name:"lock-open",hex:"F033F",version:"1.5.54"},{name:"lock-open-alert",hex:"F139B",version:"5.0.45"},{name:"lock-open-alert-outline",hex:"F15D2",version:"5.6.55"},{name:"lock-open-check",hex:"F139C",version:"5.0.45"},{name:"lock-open-check-outline",hex:"F16AB",version:"5.8.55"},{name:"lock-open-minus",hex:"F16AC",version:"5.8.55"},{name:"lock-open-minus-outline",hex:"F16AD",version:"5.8.55"},{name:"lock-open-outline",hex:"F0340",version:"1.5.54"},{name:"lock-open-plus",hex:"F16AE",version:"5.8.55"},{name:"lock-open-plus-outline",hex:"F16AF",version:"5.8.55"},{name:"lock-open-remove",hex:"F16B0",version:"5.8.55"},{name:"lock-open-remove-outline",hex:"F16B1",version:"5.8.55"},{name:"lock-open-variant",hex:"F0FC6",version:"4.0.96"},{name:"lock-open-variant-outline",hex:"F0FC7",version:"4.0.96"},{name:"lock-outline",hex:"F0341",version:"1.5.54"},{name:"lock-pattern",hex:"F06EA",version:"1.8.36"},{name:"lock-plus",hex:"F05FB",version:"1.5.54"},{name:"lock-plus-outline",hex:"F16B2",version:"5.8.55"},{name:"lock-question",hex:"F08EF",version:"2.3.50"},{name:"lock-remove",hex:"F16B3",version:"5.8.55"},{name:"lock-remove-outline",hex:"F16B4",version:"5.8.55"},{name:"lock-reset",hex:"F0773",version:"1.9.32"},{name:"lock-smart",hex:"F08B2",version:"2.2.43"},{name:"locker",hex:"F07D7",version:"2.0.46"},{name:"locker-multiple",hex:"F07D8",version:"2.0.46"},{name:"login",hex:"F0342",version:"1.5.54"},{name:"login-variant",hex:"F05FC",version:"1.5.54"},{name:"logout",hex:"F0343",version:"1.5.54"},{name:"logout-variant",hex:"F05FD",version:"1.5.54"},{name:"longitude",hex:"F0F5A",version:"3.9.97"},{name:"looks",hex:"F0344",version:"1.5.54"},{name:"lotion",hex:"F1582",version:"5.5.55"},{name:"lotion-outline",hex:"F1583",version:"5.5.55"},{name:"lotion-plus",hex:"F1584",version:"5.5.55"},{name:"lotion-plus-outline",hex:"F1585",version:"5.5.55"},{name:"loupe",hex:"F0345",version:"1.5.54"},{name:"lumx",hex:"F0346",version:"1.5.54"},{name:"lungs",hex:"F1084",version:"4.2.95"},{name:"mace",hex:"F1843",version:"6.2.95"},{name:"magazine-pistol",hex:"F0324",version:"1.5.54"},{name:"magazine-rifle",hex:"F0323",version:"1.5.54"},{name:"magic-staff",hex:"F1844",version:"6.2.95"},{name:"magnet",hex:"F0347",version:"1.5.54"},{name:"magnet-on",hex:"F0348",version:"1.5.54"},{name:"magnify",hex:"F0349",version:"1.5.54"},{name:"magnify-close",hex:"F0980",version:"2.4.85"},{name:"magnify-expand",hex:"F1874",version:"6.2.95"},{name:"magnify-minus",hex:"F034A",version:"1.5.54"},{name:"magnify-minus-cursor",hex:"F0A62",version:"2.6.95"},{name:"magnify-minus-outline",hex:"F06EC",version:"1.8.36"},{name:"magnify-plus",hex:"F034B",version:"1.5.54"},{name:"magnify-plus-cursor",hex:"F0A63",version:"2.6.95"},{name:"magnify-plus-outline",hex:"F06ED",version:"1.8.36"},{name:"magnify-remove-cursor",hex:"F120C",version:"4.6.95"},{name:"magnify-remove-outline",hex:"F120D",version:"4.6.95"},{name:"magnify-scan",hex:"F1276",version:"4.7.95"},{name:"mail",hex:"F0EBB",version:"3.7.94"},{name:"mailbox",hex:"F06EE",version:"1.8.36"},{name:"mailbox-open",hex:"F0D88",version:"3.4.93"},{name:"mailbox-open-outline",hex:"F0D89",version:"3.4.93"},{name:"mailbox-open-up",hex:"F0D8A",version:"3.4.93"},{name:"mailbox-open-up-outline",hex:"F0D8B",version:"3.4.93"},{name:"mailbox-outline",hex:"F0D8C",version:"3.4.93"},{name:"mailbox-up",hex:"F0D8D",version:"3.4.93"},{name:"mailbox-up-outline",hex:"F0D8E",version:"3.4.93"},{name:"manjaro",hex:"F160A",version:"5.6.55"},{name:"map",hex:"F034D",version:"1.5.54"},{name:"map-check",hex:"F0EBC",version:"3.7.94"},{name:"map-check-outline",hex:"F0EBD",version:"3.7.94"},{name:"map-clock",hex:"F0D1E",version:"3.3.92"},{name:"map-clock-outline",hex:"F0D1F",version:"3.3.92"},{name:"map-legend",hex:"F0A01",version:"2.5.94"},{name:"map-marker",hex:"F034E",version:"1.5.54"},{name:"map-marker-account",hex:"F18E3",version:"6.3.95"},{name:"map-marker-account-outline",hex:"F18E4",version:"6.3.95"},{name:"map-marker-alert",hex:"F0F05",version:"3.8.95"},{name:"map-marker-alert-outline",hex:"F0F06",version:"3.8.95"},{name:"map-marker-check",hex:"F0C95",version:"3.2.89"},{name:"map-marker-check-outline",hex:"F12FB",version:"4.8.95"},{name:"map-marker-circle",hex:"F034F",version:"1.5.54"},{name:"map-marker-distance",hex:"F08F0",version:"2.3.50"},{name:"map-marker-down",hex:"F1102",version:"4.3.95"},{name:"map-marker-left",hex:"F12DB",version:"4.8.95"},{name:"map-marker-left-outline",hex:"F12DD",version:"4.8.95"},{name:"map-marker-minus",hex:"F0650",version:"1.6.50"},{name:"map-marker-minus-outline",hex:"F12F9",version:"4.8.95"},{name:"map-marker-multiple",hex:"F0350",version:"1.5.54"},{name:"map-marker-multiple-outline",hex:"F1277",version:"4.7.95"},{name:"map-marker-off",hex:"F0351",version:"1.5.54"},{name:"map-marker-off-outline",hex:"F12FD",version:"4.8.95"},{name:"map-marker-outline",hex:"F07D9",version:"2.0.46"},{name:"map-marker-path",hex:"F0D20",version:"3.3.92"},{name:"map-marker-plus",hex:"F0651",version:"1.6.50"},{name:"map-marker-plus-outline",hex:"F12F8",version:"4.8.95"},{name:"map-marker-question",hex:"F0F07",version:"3.8.95"},{name:"map-marker-question-outline",hex:"F0F08",version:"3.8.95"},{name:"map-marker-radius",hex:"F0352",version:"1.5.54"},{name:"map-marker-radius-outline",hex:"F12FC",version:"4.8.95"},{name:"map-marker-remove",hex:"F0F09",version:"3.8.95"},{name:"map-marker-remove-outline",hex:"F12FA",version:"4.8.95"},{name:"map-marker-remove-variant",hex:"F0F0A",version:"3.8.95"},{name:"map-marker-right",hex:"F12DC",version:"4.8.95"},{name:"map-marker-right-outline",hex:"F12DE",version:"4.8.95"},{name:"map-marker-star",hex:"F1608",version:"5.6.55"},{name:"map-marker-star-outline",hex:"F1609",version:"5.6.55"},{name:"map-marker-up",hex:"F1103",version:"4.3.95"},{name:"map-minus",hex:"F0981",version:"2.4.85"},{name:"map-outline",hex:"F0982",version:"2.4.85"},{name:"map-plus",hex:"F0983",version:"2.4.85"},{name:"map-search",hex:"F0984",version:"2.4.85"},{name:"map-search-outline",hex:"F0985",version:"2.4.85"},{name:"mapbox",hex:"F0BAA",version:"3.0.39"},{name:"margin",hex:"F0353",version:"1.5.54"},{name:"marker",hex:"F0652",version:"1.6.50"},{name:"marker-cancel",hex:"F0DD9",version:"3.5.94"},{name:"marker-check",hex:"F0355",version:"1.5.54"},{name:"mastodon",hex:"F0AD1",version:"2.7.94"},{name:"material-design",hex:"F0986",version:"2.4.85"},{name:"material-ui",hex:"F0357",version:"1.5.54"},{name:"math-compass",hex:"F0358",version:"1.5.54"},{name:"math-cos",hex:"F0C96",version:"3.2.89"},{name:"math-integral",hex:"F0FC8",version:"4.0.96"},{name:"math-integral-box",hex:"F0FC9",version:"4.0.96"},{name:"math-log",hex:"F1085",version:"4.2.95"},{name:"math-norm",hex:"F0FCA",version:"4.0.96"},{name:"math-norm-box",hex:"F0FCB",version:"4.0.96"},{name:"math-sin",hex:"F0C97",version:"3.2.89"},{name:"math-tan",hex:"F0C98",version:"3.2.89"},{name:"matrix",hex:"F0628",version:"1.6.50"},{name:"medal",hex:"F0987",version:"2.4.85"},{name:"medal-outline",hex:"F1326",version:"4.9.95"},{name:"medical-bag",hex:"F06EF",version:"1.8.36"},{name:"meditation",hex:"F117B",version:"4.4.95"},{name:"memory",hex:"F035B",version:"1.5.54"},{name:"menorah",hex:"F17D4",version:"6.1.95"},{name:"menorah-fire",hex:"F17D5",version:"6.1.95"},{name:"menu",hex:"F035C",version:"1.5.54"},{name:"menu-down",hex:"F035D",version:"1.5.54"},{name:"menu-down-outline",hex:"F06B6",version:"1.7.22"},{name:"menu-left",hex:"F035E",version:"1.5.54"},{name:"menu-left-outline",hex:"F0A02",version:"2.5.94"},{name:"menu-open",hex:"F0BAB",version:"3.0.39"},{name:"menu-right",hex:"F035F",version:"1.5.54"},{name:"menu-right-outline",hex:"F0A03",version:"2.5.94"},{name:"menu-swap",hex:"F0A64",version:"2.6.95"},{name:"menu-swap-outline",hex:"F0A65",version:"2.6.95"},{name:"menu-up",hex:"F0360",version:"1.5.54"},{name:"menu-up-outline",hex:"F06B7",version:"1.7.22"},{name:"merge",hex:"F0F5C",version:"3.9.97"},{name:"message",hex:"F0361",version:"1.5.54"},{name:"message-alert",hex:"F0362",version:"1.5.54"},{name:"message-alert-outline",hex:"F0A04",version:"2.5.94"},{name:"message-arrow-left",hex:"F12F2",version:"4.8.95"},{name:"message-arrow-left-outline",hex:"F12F3",version:"4.8.95"},{name:"message-arrow-right",hex:"F12F4",version:"4.8.95"},{name:"message-arrow-right-outline",hex:"F12F5",version:"4.8.95"},{name:"message-badge",hex:"F1941",version:"6.4.95"},{name:"message-badge-outline",hex:"F1942",version:"6.4.95"},{name:"message-bookmark",hex:"F15AC",version:"5.5.55"},{name:"message-bookmark-outline",hex:"F15AD",version:"5.5.55"},{name:"message-bulleted",hex:"F06A2",version:"1.7.12"},{name:"message-bulleted-off",hex:"F06A3",version:"1.7.12"},{name:"message-cog",hex:"F06F1",version:"1.8.36"},{name:"message-cog-outline",hex:"F1172",version:"4.4.95"},{name:"message-draw",hex:"F0363",version:"1.5.54"},{name:"message-flash",hex:"F15A9",version:"5.5.55"},{name:"message-flash-outline",hex:"F15AA",version:"5.5.55"},{name:"message-image",hex:"F0364",version:"1.5.54"},{name:"message-image-outline",hex:"F116C",version:"4.4.95"},{name:"message-lock",hex:"F0FCC",version:"4.0.96"},{name:"message-lock-outline",hex:"F116D",version:"4.4.95"},{name:"message-minus",hex:"F116E",version:"4.4.95"},{name:"message-minus-outline",hex:"F116F",version:"4.4.95"},{name:"message-off",hex:"F164D",version:"5.7.55"},{name:"message-off-outline",hex:"F164E",version:"5.7.55"},{name:"message-outline",hex:"F0365",version:"1.5.54"},{name:"message-plus",hex:"F0653",version:"1.6.50"},{name:"message-plus-outline",hex:"F10BB",version:"4.2.95"},{name:"message-processing",hex:"F0366",version:"1.5.54"},{name:"message-processing-outline",hex:"F1170",version:"4.4.95"},{name:"message-question",hex:"F173A",version:"5.9.55"},{name:"message-question-outline",hex:"F173B",version:"5.9.55"},{name:"message-reply",hex:"F0367",version:"1.5.54"},{name:"message-reply-outline",hex:"F173D",version:"5.9.55"},{name:"message-reply-text",hex:"F0368",version:"1.5.54"},{name:"message-reply-text-outline",hex:"F173E",version:"5.9.55"},{name:"message-settings",hex:"F06F0",version:"1.8.36"},{name:"message-settings-outline",hex:"F1171",version:"4.4.95"},{name:"message-star",hex:"F069A",version:"1.7.12"},{name:"message-star-outline",hex:"F1250",version:"4.6.95"},{name:"message-text",hex:"F0369",version:"1.5.54"},{name:"message-text-clock",hex:"F1173",version:"4.4.95"},{name:"message-text-clock-outline",hex:"F1174",version:"4.4.95"},{name:"message-text-lock",hex:"F0FCD",version:"4.0.96"},{name:"message-text-lock-outline",hex:"F1175",version:"4.4.95"},{name:"message-text-outline",hex:"F036A",version:"1.5.54"},{name:"message-video",hex:"F036B",version:"1.5.54"},{name:"meteor",hex:"F0629",version:"1.6.50"},{name:"metronome",hex:"F07DA",version:"2.0.46"},{name:"metronome-tick",hex:"F07DB",version:"2.0.46"},{name:"micro-sd",hex:"F07DC",version:"2.0.46"},{name:"microphone",hex:"F036C",version:"1.5.54"},{name:"microphone-minus",hex:"F08B3",version:"2.2.43"},{name:"microphone-off",hex:"F036D",version:"1.5.54"},{name:"microphone-outline",hex:"F036E",version:"1.5.54"},{name:"microphone-plus",hex:"F08B4",version:"2.2.43"},{name:"microphone-question",hex:"F1989",version:"6.5.95"},{name:"microphone-question-outline",hex:"F198A",version:"6.5.95"},{name:"microphone-settings",hex:"F036F",version:"1.5.54"},{name:"microphone-variant",hex:"F0370",version:"1.5.54"},{name:"microphone-variant-off",hex:"F0371",version:"1.5.54"},{name:"microscope",hex:"F0654",version:"1.6.50"},{name:"microsoft",hex:"F0372",version:"1.5.54"},{name:"microsoft-access",hex:"F138E",version:"5.0.45"},{name:"microsoft-azure",hex:"F0805",version:"2.1.19"},{name:"microsoft-azure-devops",hex:"F0FD5",version:"4.2.95"},{name:"microsoft-bing",hex:"F00A4",version:"1.5.54"},{name:"microsoft-dynamics-365",hex:"F0988",version:"2.4.85"},{name:"microsoft-edge",hex:"F01E9",version:"1.5.54"},{name:"microsoft-excel",hex:"F138F",version:"5.0.45"},{name:"microsoft-internet-explorer",hex:"F0300",version:"1.5.54"},{name:"microsoft-office",hex:"F03C6",version:"1.5.54"},{name:"microsoft-onedrive",hex:"F03CA",version:"1.5.54"},{name:"microsoft-onenote",hex:"F0747",version:"1.9.32"},{name:"microsoft-outlook",hex:"F0D22",version:"3.3.92"},{name:"microsoft-powerpoint",hex:"F1390",version:"5.0.45"},{name:"microsoft-sharepoint",hex:"F1391",version:"5.0.45"},{name:"microsoft-teams",hex:"F02BB",version:"1.5.54"},{name:"microsoft-visual-studio",hex:"F0610",version:"1.5.54"},{name:"microsoft-visual-studio-code",hex:"F0A1E",version:"2.5.94"},{name:"microsoft-windows",hex:"F05B3",version:"1.5.54"},{name:"microsoft-windows-classic",hex:"F0A21",version:"2.5.94"},{name:"microsoft-word",hex:"F1392",version:"5.0.45"},{name:"microsoft-xbox",hex:"F05B9",version:"1.5.54"},{name:"microsoft-xbox-controller",hex:"F05BA",version:"1.5.54"},{name:"microsoft-xbox-controller-battery-alert",hex:"F074B",version:"1.9.32"},{name:"microsoft-xbox-controller-battery-charging",hex:"F0A22",version:"2.5.94"},{name:"microsoft-xbox-controller-battery-empty",hex:"F074C",version:"1.9.32"},{name:"microsoft-xbox-controller-battery-full",hex:"F074D",version:"1.9.32"},{name:"microsoft-xbox-controller-battery-low",hex:"F074E",version:"1.9.32"},{name:"microsoft-xbox-controller-battery-medium",hex:"F074F",version:"1.9.32"},{name:"microsoft-xbox-controller-battery-unknown",hex:"F0750",version:"1.9.32"},{name:"microsoft-xbox-controller-menu",hex:"F0E6F",version:"3.6.95"},{name:"microsoft-xbox-controller-off",hex:"F05BB",version:"1.5.54"},{name:"microsoft-xbox-controller-view",hex:"F0E70",version:"3.6.95"},{name:"microwave",hex:"F0C99",version:"3.2.89"},{name:"microwave-off",hex:"F1423",version:"5.2.45"},{name:"middleware",hex:"F0F5D",version:"3.9.97"},{name:"middleware-outline",hex:"F0F5E",version:"3.9.97"},{name:"midi",hex:"F08F1",version:"2.3.50"},{name:"midi-port",hex:"F08F2",version:"2.3.50"},{name:"mine",hex:"F0DDA",version:"3.5.94"},{name:"minecraft",hex:"F0373",version:"1.5.54"},{name:"mini-sd",hex:"F0A05",version:"2.5.94"},{name:"minidisc",hex:"F0A06",version:"2.5.94"},{name:"minus",hex:"F0374",version:"1.5.54"},{name:"minus-box",hex:"F0375",version:"1.5.54"},{name:"minus-box-multiple",hex:"F1141",version:"4.4.95"},{name:"minus-box-multiple-outline",hex:"F1142",version:"4.4.95"},{name:"minus-box-outline",hex:"F06F2",version:"1.8.36"},{name:"minus-circle",hex:"F0376",version:"1.5.54"},{name:"minus-circle-multiple",hex:"F035A",version:"1.5.54"},{name:"minus-circle-multiple-outline",hex:"F0AD3",version:"2.7.94"},{name:"minus-circle-off",hex:"F1459",version:"5.2.45"},{name:"minus-circle-off-outline",hex:"F145A",version:"5.2.45"},{name:"minus-circle-outline",hex:"F0377",version:"1.5.54"},{name:"minus-network",hex:"F0378",version:"1.5.54"},{name:"minus-network-outline",hex:"F0C9A",version:"3.2.89"},{name:"minus-thick",hex:"F1639",version:"5.7.55"},{name:"mirror",hex:"F11FD",version:"4.6.95"},{name:"mirror-rectangle",hex:"F179F",version:"6.1.95"},{name:"mirror-variant",hex:"F17A0",version:"6.1.95"},{name:"mixed-martial-arts",hex:"F0D8F",version:"3.4.93"},{name:"mixed-reality",hex:"F087F",version:"2.1.99"},{name:"molecule",hex:"F0BAC",version:"3.0.39"},{name:"molecule-co",hex:"F12FE",version:"4.8.95"},{name:"molecule-co2",hex:"F07E4",version:"2.0.46"},{name:"monitor",hex:"F0379",version:"1.5.54"},{name:"monitor-cellphone",hex:"F0989",version:"2.4.85"},{name:"monitor-cellphone-star",hex:"F098A",version:"2.4.85"},{name:"monitor-dashboard",hex:"F0A07",version:"2.5.94"},{name:"monitor-edit",hex:"F12C6",version:"4.8.95"},{name:"monitor-eye",hex:"F13B4",version:"5.0.45"},{name:"monitor-lock",hex:"F0DDB",version:"3.5.94"},{name:"monitor-multiple",hex:"F037A",version:"1.5.54"},{name:"monitor-off",hex:"F0D90",version:"3.4.93"},{name:"monitor-screenshot",hex:"F0E51",version:"3.6.95"},{name:"monitor-share",hex:"F1483",version:"5.3.45"},{name:"monitor-shimmer",hex:"F1104",version:"4.3.95"},{name:"monitor-small",hex:"F1876",version:"6.2.95"},{name:"monitor-speaker",hex:"F0F5F",version:"3.9.97"},{name:"monitor-speaker-off",hex:"F0F60",version:"3.9.97"},{name:"monitor-star",hex:"F0DDC",version:"3.5.94"},{name:"moon-first-quarter",hex:"F0F61",version:"3.9.97"},{name:"moon-full",hex:"F0F62",version:"3.9.97"},{name:"moon-last-quarter",hex:"F0F63",version:"3.9.97"},{name:"moon-new",hex:"F0F64",version:"3.9.97"},{name:"moon-waning-crescent",hex:"F0F65",version:"3.9.97"},{name:"moon-waning-gibbous",hex:"F0F66",version:"3.9.97"},{name:"moon-waxing-crescent",hex:"F0F67",version:"3.9.97"},{name:"moon-waxing-gibbous",hex:"F0F68",version:"3.9.97"},{name:"moped",hex:"F1086",version:"4.2.95"},{name:"moped-electric",hex:"F15B7",version:"5.6.55"},{name:"moped-electric-outline",hex:"F15B8",version:"5.6.55"},{name:"moped-outline",hex:"F15B9",version:"5.6.55"},{name:"more",hex:"F037B",version:"1.5.54"},{name:"mortar-pestle",hex:"F1748",version:"6.1.95"},{name:"mortar-pestle-plus",hex:"F03F1",version:"1.5.54"},{name:"mosque",hex:"F1827",version:"6.1.95"},{name:"mother-heart",hex:"F1314",version:"4.8.95"},{name:"mother-nurse",hex:"F0D21",version:"3.3.92"},{name:"motion",hex:"F15B2",version:"5.5.55"},{name:"motion-outline",hex:"F15B3",version:"5.5.55"},{name:"motion-pause",hex:"F1590",version:"5.5.55"},{name:"motion-pause-outline",hex:"F1592",version:"5.5.55"},{name:"motion-play",hex:"F158F",version:"5.5.55"},{name:"motion-play-outline",hex:"F1591",version:"5.5.55"},{name:"motion-sensor",hex:"F0D91",version:"3.4.93"},{name:"motion-sensor-off",hex:"F1435",version:"5.2.45"},{name:"motorbike",hex:"F037C",version:"1.5.54"},{name:"motorbike-electric",hex:"F15BA",version:"5.6.55"},{name:"mouse",hex:"F037D",version:"1.5.54"},{name:"mouse-bluetooth",hex:"F098B",version:"2.4.85"},{name:"mouse-move-down",hex:"F1550",version:"5.5.55"},{name:"mouse-move-up",hex:"F1551",version:"5.5.55"},{name:"mouse-move-vertical",hex:"F1552",version:"5.5.55"},{name:"mouse-off",hex:"F037E",version:"1.5.54"},{name:"mouse-variant",hex:"F037F",version:"1.5.54"},{name:"mouse-variant-off",hex:"F0380",version:"1.5.54"},{name:"move-resize",hex:"F0655",version:"1.6.50"},{name:"move-resize-variant",hex:"F0656",version:"1.6.50"},{name:"movie",hex:"F0381",version:"1.5.54"},{name:"movie-check",hex:"F16F3",version:"5.9.55"},{name:"movie-check-outline",hex:"F16F4",version:"5.9.55"},{name:"movie-cog",hex:"F16F5",version:"5.9.55"},{name:"movie-cog-outline",hex:"F16F6",version:"5.9.55"},{name:"movie-edit",hex:"F1122",version:"4.3.95"},{name:"movie-edit-outline",hex:"F1123",version:"4.3.95"},{name:"movie-filter",hex:"F1124",version:"4.3.95"},{name:"movie-filter-outline",hex:"F1125",version:"4.3.95"},{name:"movie-minus",hex:"F16F7",version:"5.9.55"},{name:"movie-minus-outline",hex:"F16F8",version:"5.9.55"},{name:"movie-off",hex:"F16F9",version:"5.9.55"},{name:"movie-off-outline",hex:"F16FA",version:"5.9.55"},{name:"movie-open",hex:"F0FCE",version:"4.0.96"},{name:"movie-open-check",hex:"F16FB",version:"5.9.55"},{name:"movie-open-check-outline",hex:"F16FC",version:"5.9.55"},{name:"movie-open-cog",hex:"F16FD",version:"5.9.55"},{name:"movie-open-cog-outline",hex:"F16FE",version:"5.9.55"},{name:"movie-open-edit",hex:"F16FF",version:"5.9.55"},{name:"movie-open-edit-outline",hex:"F1700",version:"5.9.55"},{name:"movie-open-minus",hex:"F1701",version:"5.9.55"},{name:"movie-open-minus-outline",hex:"F1702",version:"5.9.55"},{name:"movie-open-off",hex:"F1703",version:"5.9.55"},{name:"movie-open-off-outline",hex:"F1704",version:"5.9.55"},{name:"movie-open-outline",hex:"F0FCF",version:"4.0.96"},{name:"movie-open-play",hex:"F1705",version:"5.9.55"},{name:"movie-open-play-outline",hex:"F1706",version:"5.9.55"},{name:"movie-open-plus",hex:"F1707",version:"5.9.55"},{name:"movie-open-plus-outline",hex:"F1708",version:"5.9.55"},{name:"movie-open-remove",hex:"F1709",version:"5.9.55"},{name:"movie-open-remove-outline",hex:"F170A",version:"5.9.55"},{name:"movie-open-settings",hex:"F170B",version:"5.9.55"},{name:"movie-open-settings-outline",hex:"F170C",version:"5.9.55"},{name:"movie-open-star",hex:"F170D",version:"5.9.55"},{name:"movie-open-star-outline",hex:"F170E",version:"5.9.55"},{name:"movie-outline",hex:"F0DDD",version:"3.5.94"},{name:"movie-play",hex:"F170F",version:"5.9.55"},{name:"movie-play-outline",hex:"F1710",version:"5.9.55"},{name:"movie-plus",hex:"F1711",version:"5.9.55"},{name:"movie-plus-outline",hex:"F1712",version:"5.9.55"},{name:"movie-remove",hex:"F1713",version:"5.9.55"},{name:"movie-remove-outline",hex:"F1714",version:"5.9.55"},{name:"movie-roll",hex:"F07DE",version:"2.0.46"},{name:"movie-search",hex:"F11D2",version:"4.5.95"},{name:"movie-search-outline",hex:"F11D3",version:"4.5.95"},{name:"movie-settings",hex:"F1715",version:"5.9.55"},{name:"movie-settings-outline",hex:"F1716",version:"5.9.55"},{name:"movie-star",hex:"F1717",version:"5.9.55"},{name:"movie-star-outline",hex:"F1718",version:"5.9.55"},{name:"mower",hex:"F166F",version:"5.7.55"},{name:"mower-bag",hex:"F1670",version:"5.7.55"},{name:"muffin",hex:"F098C",version:"2.4.85"},{name:"multicast",hex:"F1893",version:"6.2.95"},{name:"multiplication",hex:"F0382",version:"1.5.54"},{name:"multiplication-box",hex:"F0383",version:"1.5.54"},{name:"mushroom",hex:"F07DF",version:"2.0.46"},{name:"mushroom-off",hex:"F13FA",version:"5.1.45"},{name:"mushroom-off-outline",hex:"F13FB",version:"5.1.45"},{name:"mushroom-outline",hex:"F07E0",version:"2.0.46"},{name:"music",hex:"F075A",version:"1.9.32"},{name:"music-accidental-double-flat",hex:"F0F69",version:"3.9.97"},{name:"music-accidental-double-sharp",hex:"F0F6A",version:"3.9.97"},{name:"music-accidental-flat",hex:"F0F6B",version:"3.9.97"},{name:"music-accidental-natural",hex:"F0F6C",version:"3.9.97"},{name:"music-accidental-sharp",hex:"F0F6D",version:"3.9.97"},{name:"music-box",hex:"F0384",version:"1.5.54"},{name:"music-box-multiple",hex:"F0333",version:"1.5.54"},{name:"music-box-multiple-outline",hex:"F0F04",version:"3.8.95"},{name:"music-box-outline",hex:"F0385",version:"1.5.54"},{name:"music-circle",hex:"F0386",version:"1.5.54"},{name:"music-circle-outline",hex:"F0AD4",version:"2.7.94"},{name:"music-clef-alto",hex:"F0F6E",version:"3.9.97"},{name:"music-clef-bass",hex:"F0F6F",version:"3.9.97"},{name:"music-clef-treble",hex:"F0F70",version:"3.9.97"},{name:"music-note",hex:"F0387",version:"1.5.54"},{name:"music-note-bluetooth",hex:"F05FE",version:"1.5.54"},{name:"music-note-bluetooth-off",hex:"F05FF",version:"1.5.54"},{name:"music-note-eighth",hex:"F0388",version:"1.5.54"},{name:"music-note-eighth-dotted",hex:"F0F71",version:"3.9.97"},{name:"music-note-half",hex:"F0389",version:"1.5.54"},{name:"music-note-half-dotted",hex:"F0F72",version:"3.9.97"},{name:"music-note-off",hex:"F038A",version:"1.5.54"},{name:"music-note-off-outline",hex:"F0F73",version:"3.9.97"},{name:"music-note-outline",hex:"F0F74",version:"3.9.97"},{name:"music-note-plus",hex:"F0DDE",version:"3.5.94"},{name:"music-note-quarter",hex:"F038B",version:"1.5.54"},{name:"music-note-quarter-dotted",hex:"F0F75",version:"3.9.97"},{name:"music-note-sixteenth",hex:"F038C",version:"1.5.54"},{name:"music-note-sixteenth-dotted",hex:"F0F76",version:"3.9.97"},{name:"music-note-whole",hex:"F038D",version:"1.5.54"},{name:"music-note-whole-dotted",hex:"F0F77",version:"3.9.97"},{name:"music-off",hex:"F075B",version:"1.9.32"},{name:"music-rest-eighth",hex:"F0F78",version:"3.9.97"},{name:"music-rest-half",hex:"F0F79",version:"3.9.97"},{name:"music-rest-quarter",hex:"F0F7A",version:"3.9.97"},{name:"music-rest-sixteenth",hex:"F0F7B",version:"3.9.97"},{name:"music-rest-whole",hex:"F0F7C",version:"3.9.97"},{name:"mustache",hex:"F15DE",version:"5.6.55"},{name:"nail",hex:"F0DDF",version:"3.5.94"},{name:"nas",hex:"F08F3",version:"2.3.50"},{name:"nativescript",hex:"F0880",version:"2.1.99"},{name:"nature",hex:"F038E",version:"1.5.54"},{name:"nature-people",hex:"F038F",version:"1.5.54"},{name:"navigation",hex:"F0390",version:"1.5.54"},{name:"navigation-outline",hex:"F1607",version:"5.6.55"},{name:"navigation-variant",hex:"F18F0",version:"6.3.95"},{name:"navigation-variant-outline",hex:"F18F1",version:"6.3.95"},{name:"near-me",hex:"F05CD",version:"1.5.54"},{name:"necklace",hex:"F0F0B",version:"3.8.95"},{name:"needle",hex:"F0391",version:"1.5.54"},{name:"netflix",hex:"F0746",version:"1.9.32"},{name:"network",hex:"F06F3",version:"1.8.36"},{name:"network-off",hex:"F0C9B",version:"3.2.89"},{name:"network-off-outline",hex:"F0C9C",version:"3.2.89"},{name:"network-outline",hex:"F0C9D",version:"3.2.89"},{name:"network-strength-1",hex:"F08F4",version:"2.3.50"},{name:"network-strength-1-alert",hex:"F08F5",version:"2.3.50"},{name:"network-strength-2",hex:"F08F6",version:"2.3.50"},{name:"network-strength-2-alert",hex:"F08F7",version:"2.3.50"},{name:"network-strength-3",hex:"F08F8",version:"2.3.50"},{name:"network-strength-3-alert",hex:"F08F9",version:"2.3.50"},{name:"network-strength-4",hex:"F08FA",version:"2.3.50"},{name:"network-strength-4-alert",hex:"F08FB",version:"2.3.50"},{name:"network-strength-4-cog",hex:"F191A",version:"6.4.95"},{name:"network-strength-off",hex:"F08FC",version:"2.3.50"},{name:"network-strength-off-outline",hex:"F08FD",version:"2.3.50"},{name:"network-strength-outline",hex:"F08FE",version:"2.3.50"},{name:"new-box",hex:"F0394",version:"1.5.54"},{name:"newspaper",hex:"F0395",version:"1.5.54"},{name:"newspaper-check",hex:"F1943",version:"6.4.95"},{name:"newspaper-minus",hex:"F0F0C",version:"3.8.95"},{name:"newspaper-plus",hex:"F0F0D",version:"3.8.95"},{name:"newspaper-remove",hex:"F1944",version:"6.4.95"},{name:"newspaper-variant",hex:"F1001",version:"4.0.96"},{name:"newspaper-variant-multiple",hex:"F1002",version:"4.0.96"},{name:"newspaper-variant-multiple-outline",hex:"F1003",version:"4.0.96"},{name:"newspaper-variant-outline",hex:"F1004",version:"4.0.96"},{name:"nfc",hex:"F0396",version:"1.5.54"},{name:"nfc-search-variant",hex:"F0E53",version:"3.6.95"},{name:"nfc-tap",hex:"F0397",version:"1.5.54"},{name:"nfc-variant",hex:"F0398",version:"1.5.54"},{name:"nfc-variant-off",hex:"F0E54",version:"3.6.95"},{name:"ninja",hex:"F0774",version:"1.9.32"},{name:"nintendo-game-boy",hex:"F1393",version:"5.0.45"},{name:"nintendo-switch",hex:"F07E1",version:"2.0.46"},{name:"nintendo-wii",hex:"F05AB",version:"1.5.54"},{name:"nintendo-wiiu",hex:"F072D",version:"1.8.36"},{name:"nix",hex:"F1105",version:"4.3.95"},{name:"nodejs",hex:"F0399",version:"1.5.54"},{name:"noodles",hex:"F117E",version:"4.4.95"},{name:"not-equal",hex:"F098D",version:"2.4.85"},{name:"not-equal-variant",hex:"F098E",version:"2.4.85"},{name:"note",hex:"F039A",version:"1.5.54"},{name:"note-alert",hex:"F177D",version:"6.1.95"},{name:"note-alert-outline",hex:"F177E",version:"6.1.95"},{name:"note-check",hex:"F177F",version:"6.1.95"},{name:"note-check-outline",hex:"F1780",version:"6.1.95"},{name:"note-edit",hex:"F1781",version:"6.1.95"},{name:"note-edit-outline",hex:"F1782",version:"6.1.95"},{name:"note-minus",hex:"F164F",version:"5.7.55"},{name:"note-minus-outline",hex:"F1650",version:"5.7.55"},{name:"note-multiple",hex:"F06B8",version:"1.7.22"},{name:"note-multiple-outline",hex:"F06B9",version:"1.7.22"},{name:"note-off",hex:"F1783",version:"6.1.95"},{name:"note-off-outline",hex:"F1784",version:"6.1.95"},{name:"note-outline",hex:"F039B",version:"1.5.54"},{name:"note-plus",hex:"F039C",version:"1.5.54"},{name:"note-plus-outline",hex:"F039D",version:"1.5.54"},{name:"note-remove",hex:"F1651",version:"5.7.55"},{name:"note-remove-outline",hex:"F1652",version:"5.7.55"},{name:"note-search",hex:"F1653",version:"5.7.55"},{name:"note-search-outline",hex:"F1654",version:"5.7.55"},{name:"note-text",hex:"F039E",version:"1.5.54"},{name:"note-text-outline",hex:"F11D7",version:"4.5.95"},{name:"notebook",hex:"F082E",version:"2.1.19"},{name:"notebook-check",hex:"F14F5",version:"5.4.55"},{name:"notebook-check-outline",hex:"F14F6",version:"5.4.55"},{name:"notebook-edit",hex:"F14E7",version:"5.4.55"},{name:"notebook-edit-outline",hex:"F14E9",version:"5.4.55"},{name:"notebook-minus",hex:"F1610",version:"5.6.55"},{name:"notebook-minus-outline",hex:"F1611",version:"5.6.55"},{name:"notebook-multiple",hex:"F0E55",version:"3.6.95"},{name:"notebook-outline",hex:"F0EBF",version:"3.7.94"},{name:"notebook-plus",hex:"F1612",version:"5.6.55"},{name:"notebook-plus-outline",hex:"F1613",version:"5.6.55"},{name:"notebook-remove",hex:"F1614",version:"5.6.55"},{name:"notebook-remove-outline",hex:"F1615",version:"5.6.55"},{name:"notification-clear-all",hex:"F039F",version:"1.5.54"},{name:"npm",hex:"F06F7",version:"1.8.36"},{name:"nuke",hex:"F06A4",version:"1.7.12"},{name:"null",hex:"F07E2",version:"2.0.46"},{name:"numeric",hex:"F03A0",version:"1.5.54"},{name:"numeric-0",hex:"F0B39",version:"2.8.94"},{name:"numeric-0-box",hex:"F03A1",version:"1.5.54"},{name:"numeric-0-box-multiple",hex:"F0F0E",version:"3.8.95"},{name:"numeric-0-box-multiple-outline",hex:"F03A2",version:"1.5.54"},{name:"numeric-0-box-outline",hex:"F03A3",version:"1.5.54"},{name:"numeric-0-circle",hex:"F0C9E",version:"3.2.89"},{name:"numeric-0-circle-outline",hex:"F0C9F",version:"3.2.89"},{name:"numeric-1",hex:"F0B3A",version:"2.8.94"},{name:"numeric-1-box",hex:"F03A4",version:"1.5.54"},{name:"numeric-1-box-multiple",hex:"F0F0F",version:"3.8.95"},{name:"numeric-1-box-multiple-outline",hex:"F03A5",version:"1.5.54"},{name:"numeric-1-box-outline",hex:"F03A6",version:"1.5.54"},{name:"numeric-1-circle",hex:"F0CA0",version:"3.2.89"},{name:"numeric-1-circle-outline",hex:"F0CA1",version:"3.2.89"},{name:"numeric-10",hex:"F0FE9",version:"4.0.96"},{name:"numeric-10-box",hex:"F0F7D",version:"3.9.97"},{name:"numeric-10-box-multiple",hex:"F0FEA",version:"4.0.96"},{name:"numeric-10-box-multiple-outline",hex:"F0FEB",version:"4.0.96"},{name:"numeric-10-box-outline",hex:"F0F7E",version:"3.9.97"},{name:"numeric-10-circle",hex:"F0FEC",version:"4.0.96"},{name:"numeric-10-circle-outline",hex:"F0FED",version:"4.0.96"},{name:"numeric-2",hex:"F0B3B",version:"2.8.94"},{name:"numeric-2-box",hex:"F03A7",version:"1.5.54"},{name:"numeric-2-box-multiple",hex:"F0F10",version:"3.8.95"},{name:"numeric-2-box-multiple-outline",hex:"F03A8",version:"1.5.54"},{name:"numeric-2-box-outline",hex:"F03A9",version:"1.5.54"},{name:"numeric-2-circle",hex:"F0CA2",version:"3.2.89"},{name:"numeric-2-circle-outline",hex:"F0CA3",version:"3.2.89"},{name:"numeric-3",hex:"F0B3C",version:"2.8.94"},{name:"numeric-3-box",hex:"F03AA",version:"1.5.54"},{name:"numeric-3-box-multiple",hex:"F0F11",version:"3.8.95"},{name:"numeric-3-box-multiple-outline",hex:"F03AB",version:"1.5.54"},{name:"numeric-3-box-outline",hex:"F03AC",version:"1.5.54"},{name:"numeric-3-circle",hex:"F0CA4",version:"3.2.89"},{name:"numeric-3-circle-outline",hex:"F0CA5",version:"3.2.89"},{name:"numeric-4",hex:"F0B3D",version:"2.8.94"},{name:"numeric-4-box",hex:"F03AD",version:"1.5.54"},{name:"numeric-4-box-multiple",hex:"F0F12",version:"3.8.95"},{name:"numeric-4-box-multiple-outline",hex:"F03B2",version:"1.5.54"},{name:"numeric-4-box-outline",hex:"F03AE",version:"1.5.54"},{name:"numeric-4-circle",hex:"F0CA6",version:"3.2.89"},{name:"numeric-4-circle-outline",hex:"F0CA7",version:"3.2.89"},{name:"numeric-5",hex:"F0B3E",version:"2.8.94"},{name:"numeric-5-box",hex:"F03B1",version:"1.5.54"},{name:"numeric-5-box-multiple",hex:"F0F13",version:"3.8.95"},{name:"numeric-5-box-multiple-outline",hex:"F03AF",version:"1.5.54"},{name:"numeric-5-box-outline",hex:"F03B0",version:"1.5.54"},{name:"numeric-5-circle",hex:"F0CA8",version:"3.2.89"},{name:"numeric-5-circle-outline",hex:"F0CA9",version:"3.2.89"},{name:"numeric-6",hex:"F0B3F",version:"2.8.94"},{name:"numeric-6-box",hex:"F03B3",version:"1.5.54"},{name:"numeric-6-box-multiple",hex:"F0F14",version:"3.8.95"},{name:"numeric-6-box-multiple-outline",hex:"F03B4",version:"1.5.54"},{name:"numeric-6-box-outline",hex:"F03B5",version:"1.5.54"},{name:"numeric-6-circle",hex:"F0CAA",version:"3.2.89"},{name:"numeric-6-circle-outline",hex:"F0CAB",version:"3.2.89"},{name:"numeric-7",hex:"F0B40",version:"2.8.94"},{name:"numeric-7-box",hex:"F03B6",version:"1.5.54"},{name:"numeric-7-box-multiple",hex:"F0F15",version:"3.8.95"},{name:"numeric-7-box-multiple-outline",hex:"F03B7",version:"1.5.54"},{name:"numeric-7-box-outline",hex:"F03B8",version:"1.5.54"},{name:"numeric-7-circle",hex:"F0CAC",version:"3.2.89"},{name:"numeric-7-circle-outline",hex:"F0CAD",version:"3.2.89"},{name:"numeric-8",hex:"F0B41",version:"2.8.94"},{name:"numeric-8-box",hex:"F03B9",version:"1.5.54"},{name:"numeric-8-box-multiple",hex:"F0F16",version:"3.8.95"},{name:"numeric-8-box-multiple-outline",hex:"F03BA",version:"1.5.54"},{name:"numeric-8-box-outline",hex:"F03BB",version:"1.5.54"},{name:"numeric-8-circle",hex:"F0CAE",version:"3.2.89"},{name:"numeric-8-circle-outline",hex:"F0CAF",version:"3.2.89"},{name:"numeric-9",hex:"F0B42",version:"2.8.94"},{name:"numeric-9-box",hex:"F03BC",version:"1.5.54"},{name:"numeric-9-box-multiple",hex:"F0F17",version:"3.8.95"},{name:"numeric-9-box-multiple-outline",hex:"F03BD",version:"1.5.54"},{name:"numeric-9-box-outline",hex:"F03BE",version:"1.5.54"},{name:"numeric-9-circle",hex:"F0CB0",version:"3.2.89"},{name:"numeric-9-circle-outline",hex:"F0CB1",version:"3.2.89"},{name:"numeric-9-plus",hex:"F0FEE",version:"4.0.96"},{name:"numeric-9-plus-box",hex:"F03BF",version:"1.5.54"},{name:"numeric-9-plus-box-multiple",hex:"F0F18",version:"3.8.95"},{name:"numeric-9-plus-box-multiple-outline",hex:"F03C0",version:"1.5.54"},{name:"numeric-9-plus-box-outline",hex:"F03C1",version:"1.5.54"},{name:"numeric-9-plus-circle",hex:"F0CB2",version:"3.2.89"},{name:"numeric-9-plus-circle-outline",hex:"F0CB3",version:"3.2.89"},{name:"numeric-negative-1",hex:"F1052",version:"4.1.95"},{name:"numeric-positive-1",hex:"F15CB",version:"5.6.55"},{name:"nut",hex:"F06F8",version:"1.8.36"},{name:"nutrition",hex:"F03C2",version:"1.5.54"},{name:"nuxt",hex:"F1106",version:"4.3.95"},{name:"oar",hex:"F067C",version:"1.7.12"},{name:"ocarina",hex:"F0DE0",version:"3.5.94"},{name:"oci",hex:"F12E9",version:"4.8.95"},{name:"ocr",hex:"F113A",version:"4.4.95"},{name:"octagon",hex:"F03C3",version:"1.5.54"},{name:"octagon-outline",hex:"F03C4",version:"1.5.54"},{name:"octagram",hex:"F06F9",version:"1.8.36"},{name:"octagram-outline",hex:"F0775",version:"1.9.32"},{name:"octahedron",hex:"F1950",version:"6.4.95"},{name:"octahedron-off",hex:"F1951",version:"6.4.95"},{name:"odnoklassniki",hex:"F03C5",version:"1.5.54"},{name:"offer",hex:"F121B",version:"4.6.95"},{name:"office-building",hex:"F0991",version:"2.4.85"},{name:"office-building-cog",hex:"F1949",version:"6.4.95"},{name:"office-building-cog-outline",hex:"F194A",version:"6.4.95"},{name:"office-building-marker",hex:"F1520",version:"5.4.55"},{name:"office-building-marker-outline",hex:"F1521",version:"5.4.55"},{name:"office-building-outline",hex:"F151F",version:"5.4.55"},{name:"oil",hex:"F03C7",version:"1.5.54"},{name:"oil-lamp",hex:"F0F19",version:"3.8.95"},{name:"oil-level",hex:"F1053",version:"4.1.95"},{name:"oil-temperature",hex:"F0FF8",version:"4.0.96"},{name:"om",hex:"F0973",version:"2.4.85"},{name:"omega",hex:"F03C9",version:"1.5.54"},{name:"one-up",hex:"F0BAD",version:"3.0.39"},{name:"onepassword",hex:"F0881",version:"2.1.99"},{name:"opacity",hex:"F05CC",version:"1.5.54"},{name:"open-in-app",hex:"F03CB",version:"1.5.54"},{name:"open-in-new",hex:"F03CC",version:"1.5.54"},{name:"open-source-initiative",hex:"F0BAE",version:"3.0.39"},{name:"openid",hex:"F03CD",version:"1.5.54"},{name:"opera",hex:"F03CE",version:"1.5.54"},{name:"orbit",hex:"F0018",version:"1.5.54"},{name:"orbit-variant",hex:"F15DB",version:"5.6.55"},{name:"order-alphabetical-ascending",hex:"F020D",version:"1.5.54"},{name:"order-alphabetical-descending",hex:"F0D07",version:"3.3.92"},{name:"order-bool-ascending",hex:"F02BE",version:"1.5.54"},{name:"order-bool-ascending-variant",hex:"F098F",version:"2.4.85"},{name:"order-bool-descending",hex:"F1384",version:"5.0.45"},{name:"order-bool-descending-variant",hex:"F0990",version:"2.4.85"},{name:"order-numeric-ascending",hex:"F0545",version:"1.5.54"},{name:"order-numeric-descending",hex:"F0546",version:"1.5.54"},{name:"origin",hex:"F0B43",version:"2.8.94"},{name:"ornament",hex:"F03CF",version:"1.5.54"},{name:"ornament-variant",hex:"F03D0",version:"1.5.54"},{name:"outdoor-lamp",hex:"F1054",version:"4.1.95"},{name:"overscan",hex:"F1005",version:"4.0.96"},{name:"owl",hex:"F03D2",version:"1.5.54"},{name:"pac-man",hex:"F0BAF",version:"3.0.39"},{name:"package",hex:"F03D3",version:"1.5.54"},{name:"package-down",hex:"F03D4",version:"1.5.54"},{name:"package-up",hex:"F03D5",version:"1.5.54"},{name:"package-variant",hex:"F03D6",version:"1.5.54"},{name:"package-variant-closed",hex:"F03D7",version:"1.5.54"},{name:"page-first",hex:"F0600",version:"1.5.54"},{name:"page-last",hex:"F0601",version:"1.5.54"},{name:"page-layout-body",hex:"F06FA",version:"1.8.36"},{name:"page-layout-footer",hex:"F06FB",version:"1.8.36"},{name:"page-layout-header",hex:"F06FC",version:"1.8.36"},{name:"page-layout-header-footer",hex:"F0F7F",version:"3.9.97"},{name:"page-layout-sidebar-left",hex:"F06FD",version:"1.8.36"},{name:"page-layout-sidebar-right",hex:"F06FE",version:"1.8.36"},{name:"page-next",hex:"F0BB0",version:"3.0.39"},{name:"page-next-outline",hex:"F0BB1",version:"3.0.39"},{name:"page-previous",hex:"F0BB2",version:"3.0.39"},{name:"page-previous-outline",hex:"F0BB3",version:"3.0.39"},{name:"pail",hex:"F1417",version:"5.1.45"},{name:"pail-minus",hex:"F1437",version:"5.2.45"},{name:"pail-minus-outline",hex:"F143C",version:"5.2.45"},{name:"pail-off",hex:"F1439",version:"5.2.45"},{name:"pail-off-outline",hex:"F143E",version:"5.2.45"},{name:"pail-outline",hex:"F143A",version:"5.2.45"},{name:"pail-plus",hex:"F1436",version:"5.2.45"},{name:"pail-plus-outline",hex:"F143B",version:"5.2.45"},{name:"pail-remove",hex:"F1438",version:"5.2.45"},{name:"pail-remove-outline",hex:"F143D",version:"5.2.45"},{name:"palette",hex:"F03D8",version:"1.5.54"},{name:"palette-advanced",hex:"F03D9",version:"1.5.54"},{name:"palette-outline",hex:"F0E0C",version:"3.5.95"},{name:"palette-swatch",hex:"F08B5",version:"2.2.43"},{name:"palette-swatch-outline",hex:"F135C",version:"4.9.95"},{name:"palette-swatch-variant",hex:"F195A",version:"6.4.95"},{name:"palm-tree",hex:"F1055",version:"4.1.95"},{name:"pan",hex:"F0BB4",version:"3.0.39"},{name:"pan-bottom-left",hex:"F0BB5",version:"3.0.39"},{name:"pan-bottom-right",hex:"F0BB6",version:"3.0.39"},{name:"pan-down",hex:"F0BB7",version:"3.0.39"},{name:"pan-horizontal",hex:"F0BB8",version:"3.0.39"},{name:"pan-left",hex:"F0BB9",version:"3.0.39"},{name:"pan-right",hex:"F0BBA",version:"3.0.39"},{name:"pan-top-left",hex:"F0BBB",version:"3.0.39"},{name:"pan-top-right",hex:"F0BBC",version:"3.0.39"},{name:"pan-up",hex:"F0BBD",version:"3.0.39"},{name:"pan-vertical",hex:"F0BBE",version:"3.0.39"},{name:"panda",hex:"F03DA",version:"1.5.54"},{name:"pandora",hex:"F03DB",version:"1.5.54"},{name:"panorama",hex:"F03DC",version:"1.5.54"},{name:"panorama-fisheye",hex:"F03DD",version:"1.5.54"},{name:"panorama-horizontal",hex:"F1928",version:"6.4.95"},{name:"panorama-horizontal-outline",hex:"F03DE",version:"1.5.54"},{name:"panorama-outline",hex:"F198C",version:"6.5.95"},{name:"panorama-sphere",hex:"F198D",version:"6.5.95"},{name:"panorama-sphere-outline",hex:"F198E",version:"6.5.95"},{name:"panorama-variant",hex:"F198F",version:"6.5.95"},{name:"panorama-variant-outline",hex:"F1990",version:"6.5.95"},{name:"panorama-vertical",hex:"F1929",version:"6.4.95"},{name:"panorama-vertical-outline",hex:"F03DF",version:"1.5.54"},{name:"panorama-wide-angle",hex:"F195F",version:"6.4.95"},{name:"panorama-wide-angle-outline",hex:"F03E0",version:"1.5.54"},{name:"paper-cut-vertical",hex:"F03E1",version:"1.5.54"},{name:"paper-roll",hex:"F1157",version:"4.4.95"},{name:"paper-roll-outline",hex:"F1158",version:"4.4.95"},{name:"paperclip",hex:"F03E2",version:"1.5.54"},{name:"parachute",hex:"F0CB4",version:"3.2.89"},{name:"parachute-outline",hex:"F0CB5",version:"3.2.89"},{name:"paragliding",hex:"F1745",version:"6.1.95"},{name:"parking",hex:"F03E3",version:"1.5.54"},{name:"party-popper",hex:"F1056",version:"4.1.95"},{name:"passport",hex:"F07E3",version:"2.0.46"},{name:"passport-biometric",hex:"F0DE1",version:"3.5.94"},{name:"pasta",hex:"F1160",version:"4.4.95"},{name:"patio-heater",hex:"F0F80",version:"3.9.97"},{name:"patreon",hex:"F0882",version:"2.1.99"},{name:"pause",hex:"F03E4",version:"1.5.54"},{name:"pause-circle",hex:"F03E5",version:"1.5.54"},{name:"pause-circle-outline",hex:"F03E6",version:"1.5.54"},{name:"pause-octagon",hex:"F03E7",version:"1.5.54"},{name:"pause-octagon-outline",hex:"F03E8",version:"1.5.54"},{name:"paw",hex:"F03E9",version:"1.5.54"},{name:"paw-off",hex:"F0657",version:"1.6.50"},{name:"paw-off-outline",hex:"F1676",version:"5.7.55"},{name:"paw-outline",hex:"F1675",version:"5.7.55"},{name:"peace",hex:"F0884",version:"2.1.99"},{name:"peanut",hex:"F0FFC",version:"4.0.96"},{name:"peanut-off",hex:"F0FFD",version:"4.0.96"},{name:"peanut-off-outline",hex:"F0FFF",version:"4.0.96"},{name:"peanut-outline",hex:"F0FFE",version:"4.0.96"},{name:"pen",hex:"F03EA",version:"1.5.54"},{name:"pen-lock",hex:"F0DE2",version:"3.5.94"},{name:"pen-minus",hex:"F0DE3",version:"3.5.94"},{name:"pen-off",hex:"F0DE4",version:"3.5.94"},{name:"pen-plus",hex:"F0DE5",version:"3.5.94"},{name:"pen-remove",hex:"F0DE6",version:"3.5.94"},{name:"pencil",hex:"F03EB",version:"1.5.54"},{name:"pencil-box",hex:"F03EC",version:"1.5.54"},{name:"pencil-box-multiple",hex:"F1144",version:"4.4.95"},{name:"pencil-box-multiple-outline",hex:"F1145",version:"4.4.95"},{name:"pencil-box-outline",hex:"F03ED",version:"1.5.54"},{name:"pencil-circle",hex:"F06FF",version:"1.8.36"},{name:"pencil-circle-outline",hex:"F0776",version:"1.9.32"},{name:"pencil-lock",hex:"F03EE",version:"1.5.54"},{name:"pencil-lock-outline",hex:"F0DE7",version:"3.5.94"},{name:"pencil-minus",hex:"F0DE8",version:"3.5.94"},{name:"pencil-minus-outline",hex:"F0DE9",version:"3.5.94"},{name:"pencil-off",hex:"F03EF",version:"1.5.54"},{name:"pencil-off-outline",hex:"F0DEA",version:"3.5.94"},{name:"pencil-outline",hex:"F0CB6",version:"3.2.89"},{name:"pencil-plus",hex:"F0DEB",version:"3.5.94"},{name:"pencil-plus-outline",hex:"F0DEC",version:"3.5.94"},{name:"pencil-remove",hex:"F0DED",version:"3.5.94"},{name:"pencil-remove-outline",hex:"F0DEE",version:"3.5.94"},{name:"pencil-ruler",hex:"F1353",version:"4.9.95"},{name:"penguin",hex:"F0EC0",version:"3.7.94"},{name:"pentagon",hex:"F0701",version:"1.8.36"},{name:"pentagon-outline",hex:"F0700",version:"1.8.36"},{name:"pentagram",hex:"F1667",version:"5.7.55"},{name:"percent",hex:"F03F0",version:"1.5.54"},{name:"percent-outline",hex:"F1278",version:"4.7.95"},{name:"periodic-table",hex:"F08B6",version:"2.2.43"},{name:"perspective-less",hex:"F0D23",version:"3.3.92"},{name:"perspective-more",hex:"F0D24",version:"3.3.92"},{name:"ph",hex:"F17C5",version:"6.1.95"},{name:"phone",hex:"F03F2",version:"1.5.54"},{name:"phone-alert",hex:"F0F1A",version:"3.8.95"},{name:"phone-alert-outline",hex:"F118E",version:"4.5.95"},{name:"phone-bluetooth",hex:"F03F3",version:"1.5.54"},{name:"phone-bluetooth-outline",hex:"F118F",version:"4.5.95"},{name:"phone-cancel",hex:"F10BC",version:"4.2.95"},{name:"phone-cancel-outline",hex:"F1190",version:"4.5.95"},{name:"phone-check",hex:"F11A9",version:"4.5.95"},{name:"phone-check-outline",hex:"F11AA",version:"4.5.95"},{name:"phone-classic",hex:"F0602",version:"1.5.54"},{name:"phone-classic-off",hex:"F1279",version:"4.7.95"},{name:"phone-dial",hex:"F1559",version:"5.5.55"},{name:"phone-dial-outline",hex:"F155A",version:"5.5.55"},{name:"phone-forward",hex:"F03F4",version:"1.5.54"},{name:"phone-forward-outline",hex:"F1191",version:"4.5.95"},{name:"phone-hangup",hex:"F03F5",version:"1.5.54"},{name:"phone-hangup-outline",hex:"F1192",version:"4.5.95"},{name:"phone-in-talk",hex:"F03F6",version:"1.5.54"},{name:"phone-in-talk-outline",hex:"F1182",version:"4.4.95"},{name:"phone-incoming",hex:"F03F7",version:"1.5.54"},{name:"phone-incoming-outline",hex:"F1193",version:"4.5.95"},{name:"phone-lock",hex:"F03F8",version:"1.5.54"},{name:"phone-lock-outline",hex:"F1194",version:"4.5.95"},{name:"phone-log",hex:"F03F9",version:"1.5.54"},{name:"phone-log-outline",hex:"F1195",version:"4.5.95"},{name:"phone-message",hex:"F1196",version:"4.5.95"},{name:"phone-message-outline",hex:"F1197",version:"4.5.95"},{name:"phone-minus",hex:"F0658",version:"1.6.50"},{name:"phone-minus-outline",hex:"F1198",version:"4.5.95"},{name:"phone-missed",hex:"F03FA",version:"1.5.54"},{name:"phone-missed-outline",hex:"F11A5",version:"4.5.95"},{name:"phone-off",hex:"F0DEF",version:"3.5.94"},{name:"phone-off-outline",hex:"F11A6",version:"4.5.95"},{name:"phone-outgoing",hex:"F03FB",version:"1.5.54"},{name:"phone-outgoing-outline",hex:"F1199",version:"4.5.95"},{name:"phone-outline",hex:"F0DF0",version:"3.5.94"},{name:"phone-paused",hex:"F03FC",version:"1.5.54"},{name:"phone-paused-outline",hex:"F119A",version:"4.5.95"},{name:"phone-plus",hex:"F0659",version:"1.6.50"},{name:"phone-plus-outline",hex:"F119B",version:"4.5.95"},{name:"phone-refresh",hex:"F1993",version:"6.5.95"},{name:"phone-refresh-outline",hex:"F1994",version:"6.5.95"},{name:"phone-remove",hex:"F152F",version:"5.4.55"},{name:"phone-remove-outline",hex:"F1530",version:"5.4.55"},{name:"phone-return",hex:"F082F",version:"2.1.19"},{name:"phone-return-outline",hex:"F119C",version:"4.5.95"},{name:"phone-ring",hex:"F11AB",version:"4.5.95"},{name:"phone-ring-outline",hex:"F11AC",version:"4.5.95"},{name:"phone-rotate-landscape",hex:"F0885",version:"2.1.99"},{name:"phone-rotate-portrait",hex:"F0886",version:"2.1.99"},{name:"phone-settings",hex:"F03FD",version:"1.5.54"},{name:"phone-settings-outline",hex:"F119D",version:"4.5.95"},{name:"phone-sync",hex:"F1995",version:"6.5.95"},{name:"phone-sync-outline",hex:"F1996",version:"6.5.95"},{name:"phone-voip",hex:"F03FE",version:"1.5.54"},{name:"pi",hex:"F03FF",version:"1.5.54"},{name:"pi-box",hex:"F0400",version:"1.5.54"},{name:"pi-hole",hex:"F0DF1",version:"3.5.94"},{name:"piano",hex:"F067D",version:"1.7.12"},{name:"piano-off",hex:"F0698",version:"1.7.12"},{name:"pickaxe",hex:"F08B7",version:"2.2.43"},{name:"picture-in-picture-bottom-right",hex:"F0E57",version:"3.6.95"},{name:"picture-in-picture-bottom-right-outline",hex:"F0E58",version:"3.6.95"},{name:"picture-in-picture-top-right",hex:"F0E59",version:"3.6.95"},{name:"picture-in-picture-top-right-outline",hex:"F0E5A",version:"3.6.95"},{name:"pier",hex:"F0887",version:"2.1.99"},{name:"pier-crane",hex:"F0888",version:"2.1.99"},{name:"pig",hex:"F0401",version:"1.5.54"},{name:"pig-variant",hex:"F1006",version:"4.0.96"},{name:"pig-variant-outline",hex:"F1678",version:"5.7.55"},{name:"piggy-bank",hex:"F1007",version:"4.0.96"},{name:"piggy-bank-outline",hex:"F1679",version:"5.7.55"},{name:"pill",hex:"F0402",version:"1.5.54"},{name:"pillar",hex:"F0702",version:"1.8.36"},{name:"pin",hex:"F0403",version:"1.5.54"},{name:"pin-off",hex:"F0404",version:"1.5.54"},{name:"pin-off-outline",hex:"F0930",version:"2.3.54"},{name:"pin-outline",hex:"F0931",version:"2.3.54"},{name:"pine-tree",hex:"F0405",version:"1.5.54"},{name:"pine-tree-box",hex:"F0406",version:"1.5.54"},{name:"pine-tree-fire",hex:"F141A",version:"5.2.45"},{name:"pinterest",hex:"F0407",version:"1.5.54"},{name:"pinwheel",hex:"F0AD5",version:"2.7.94"},{name:"pinwheel-outline",hex:"F0AD6",version:"2.7.94"},{name:"pipe",hex:"F07E5",version:"2.0.46"},{name:"pipe-disconnected",hex:"F07E6",version:"2.0.46"},{name:"pipe-leak",hex:"F0889",version:"2.1.99"},{name:"pipe-valve",hex:"F184D",version:"6.2.95"},{name:"pipe-wrench",hex:"F1354",version:"4.9.95"},{name:"pirate",hex:"F0A08",version:"2.5.94"},{name:"pistol",hex:"F0703",version:"1.8.36"},{name:"piston",hex:"F088A",version:"2.1.99"},{name:"pitchfork",hex:"F1553",version:"5.5.55"},{name:"pizza",hex:"F0409",version:"1.5.54"},{name:"play",hex:"F040A",version:"1.5.54"},{name:"play-box",hex:"F127A",version:"4.7.95"},{name:"play-box-multiple",hex:"F0D19",version:"3.3.92"},{name:"play-box-multiple-outline",hex:"F13E6",version:"5.1.45"},{name:"play-box-outline",hex:"F040B",version:"1.5.54"},{name:"play-circle",hex:"F040C",version:"1.5.54"},{name:"play-circle-outline",hex:"F040D",version:"1.5.54"},{name:"play-network",hex:"F088B",version:"2.1.99"},{name:"play-network-outline",hex:"F0CB7",version:"3.2.89"},{name:"play-outline",hex:"F0F1B",version:"3.8.95"},{name:"play-pause",hex:"F040E",version:"1.5.54"},{name:"play-protected-content",hex:"F040F",version:"1.5.54"},{name:"play-speed",hex:"F08FF",version:"2.3.50"},{name:"playlist-check",hex:"F05C7",version:"1.5.54"},{name:"playlist-edit",hex:"F0900",version:"2.3.50"},{name:"playlist-minus",hex:"F0410",version:"1.5.54"},{name:"playlist-music",hex:"F0CB8",version:"3.2.89"},{name:"playlist-music-outline",hex:"F0CB9",version:"3.2.89"},{name:"playlist-play",hex:"F0411",version:"1.5.54"},{name:"playlist-plus",hex:"F0412",version:"1.5.54"},{name:"playlist-remove",hex:"F0413",version:"1.5.54"},{name:"playlist-star",hex:"F0DF2",version:"3.5.94"},{name:"plex",hex:"F06BA",version:"1.7.22"},{name:"pliers",hex:"F19A4",version:"6.5.95"},{name:"plus",hex:"F0415",version:"1.5.54"},{name:"plus-box",hex:"F0416",version:"1.5.54"},{name:"plus-box-multiple",hex:"F0334",version:"1.5.54"},{name:"plus-box-multiple-outline",hex:"F1143",version:"4.4.95"},{name:"plus-box-outline",hex:"F0704",version:"1.8.36"},{name:"plus-circle",hex:"F0417",version:"1.5.54"},{name:"plus-circle-multiple",hex:"F034C",version:"1.5.54"},{name:"plus-circle-multiple-outline",hex:"F0418",version:"1.5.54"},{name:"plus-circle-outline",hex:"F0419",version:"1.5.54"},{name:"plus-minus",hex:"F0992",version:"2.4.85"},{name:"plus-minus-box",hex:"F0993",version:"2.4.85"},{name:"plus-minus-variant",hex:"F14C9",version:"5.3.45"},{name:"plus-network",hex:"F041A",version:"1.5.54"},{name:"plus-network-outline",hex:"F0CBA",version:"3.2.89"},{name:"plus-outline",hex:"F0705",version:"1.8.36"},{name:"plus-thick",hex:"F11EC",version:"4.5.95"},{name:"podcast",hex:"F0994",version:"2.4.85"},{name:"podium",hex:"F0D25",version:"3.3.92"},{name:"podium-bronze",hex:"F0D26",version:"3.3.92"},{name:"podium-gold",hex:"F0D27",version:"3.3.92"},{name:"podium-silver",hex:"F0D28",version:"3.3.92"},{name:"point-of-sale",hex:"F0D92",version:"3.4.93"},{name:"pokeball",hex:"F041D",version:"1.5.54"},{name:"pokemon-go",hex:"F0A09",version:"2.5.94"},{name:"poker-chip",hex:"F0830",version:"2.1.19"},{name:"polaroid",hex:"F041E",version:"1.5.54"},{name:"police-badge",hex:"F1167",version:"4.4.95"},{name:"police-badge-outline",hex:"F1168",version:"4.4.95"},{name:"police-station",hex:"F1839",version:"6.2.95"},{name:"poll",hex:"F041F",version:"1.5.54"},{name:"polo",hex:"F14C3",version:"5.3.45"},{name:"polymer",hex:"F0421",version:"1.5.54"},{name:"pool",hex:"F0606",version:"1.5.54"},{name:"popcorn",hex:"F0422",version:"1.5.54"},{name:"post",hex:"F1008",version:"4.0.96"},{name:"post-outline",hex:"F1009",version:"4.0.96"},{name:"postage-stamp",hex:"F0CBB",version:"3.2.89"},{name:"pot",hex:"F02E5",version:"1.5.54"},{name:"pot-mix",hex:"F065B",version:"1.6.50"},{name:"pot-mix-outline",hex:"F0677",version:"1.7.12"},{name:"pot-outline",hex:"F02FF",version:"1.5.54"},{name:"pot-steam",hex:"F065A",version:"1.6.50"},{name:"pot-steam-outline",hex:"F0326",version:"1.5.54"},{name:"pound",hex:"F0423",version:"1.5.54"},{name:"pound-box",hex:"F0424",version:"1.5.54"},{name:"pound-box-outline",hex:"F117F",version:"4.4.95"},{name:"power",hex:"F0425",version:"1.5.54"},{name:"power-cycle",hex:"F0901",version:"2.3.50"},{name:"power-off",hex:"F0902",version:"2.3.50"},{name:"power-on",hex:"F0903",version:"2.3.50"},{name:"power-plug",hex:"F06A5",version:"1.7.12"},{name:"power-plug-off",hex:"F06A6",version:"1.7.12"},{name:"power-plug-off-outline",hex:"F1424",version:"5.2.45"},{name:"power-plug-outline",hex:"F1425",version:"5.2.45"},{name:"power-settings",hex:"F0426",version:"1.5.54"},{name:"power-sleep",hex:"F0904",version:"2.3.50"},{name:"power-socket",hex:"F0427",version:"1.5.54"},{name:"power-socket-au",hex:"F0905",version:"2.3.50"},{name:"power-socket-ch",hex:"F0FB3",version:"4.0.96"},{name:"power-socket-de",hex:"F1107",version:"4.3.95"},{name:"power-socket-eu",hex:"F07E7",version:"2.0.46"},{name:"power-socket-fr",hex:"F1108",version:"4.3.95"},{name:"power-socket-it",hex:"F14FF",version:"5.4.55"},{name:"power-socket-jp",hex:"F1109",version:"4.3.95"},{name:"power-socket-uk",hex:"F07E8",version:"2.0.46"},{name:"power-socket-us",hex:"F07E9",version:"2.0.46"},{name:"power-standby",hex:"F0906",version:"2.3.50"},{name:"powershell",hex:"F0A0A",version:"2.5.94"},{name:"prescription",hex:"F0706",version:"1.8.36"},{name:"presentation",hex:"F0428",version:"1.5.54"},{name:"presentation-play",hex:"F0429",version:"1.5.54"},{name:"pretzel",hex:"F1562",version:"5.5.55"},{name:"printer",hex:"F042A",version:"1.5.54"},{name:"printer-3d",hex:"F042B",version:"1.5.54"},{name:"printer-3d-nozzle",hex:"F0E5B",version:"3.6.95"},{name:"printer-3d-nozzle-alert",hex:"F11C0",version:"4.5.95"},{name:"printer-3d-nozzle-alert-outline",hex:"F11C1",version:"4.5.95"},{name:"printer-3d-nozzle-heat",hex:"F18B8",version:"6.3.95"},{name:"printer-3d-nozzle-heat-outline",hex:"F18B9",version:"6.3.95"},{name:"printer-3d-nozzle-outline",hex:"F0E5C",version:"3.6.95"},{name:"printer-alert",hex:"F042C",version:"1.5.54"},{name:"printer-check",hex:"F1146",version:"4.4.95"},{name:"printer-eye",hex:"F1458",version:"5.2.45"},{name:"printer-off",hex:"F0E5D",version:"3.6.95"},{name:"printer-off-outline",hex:"F1785",version:"6.1.95"},{name:"printer-outline",hex:"F1786",version:"6.1.95"},{name:"printer-pos",hex:"F1057",version:"4.1.95"},{name:"printer-search",hex:"F1457",version:"5.2.45"},{name:"printer-settings",hex:"F0707",version:"1.8.36"},{name:"printer-wireless",hex:"F0A0B",version:"2.5.94"},{name:"priority-high",hex:"F0603",version:"1.5.54"},{name:"priority-low",hex:"F0604",version:"1.5.54"},{name:"professional-hexagon",hex:"F042D",version:"1.5.54"},{name:"progress-alert",hex:"F0CBC",version:"3.2.89"},{name:"progress-check",hex:"F0995",version:"2.4.85"},{name:"progress-clock",hex:"F0996",version:"2.4.85"},{name:"progress-close",hex:"F110A",version:"4.3.95"},{name:"progress-download",hex:"F0997",version:"2.4.85"},{name:"progress-pencil",hex:"F1787",version:"6.1.95"},{name:"progress-question",hex:"F1522",version:"5.4.55"},{name:"progress-star",hex:"F1788",version:"6.1.95"},{name:"progress-upload",hex:"F0998",version:"2.4.85"},{name:"progress-wrench",hex:"F0CBD",version:"3.2.89"},{name:"projector",hex:"F042E",version:"1.5.54"},{name:"projector-screen",hex:"F042F",version:"1.5.54"},{name:"projector-screen-off",hex:"F180D",version:"6.1.95"},{name:"projector-screen-off-outline",hex:"F180E",version:"6.1.95"},{name:"projector-screen-outline",hex:"F1724",version:"5.9.55"},{name:"projector-screen-variant",hex:"F180F",version:"6.1.95"},{name:"projector-screen-variant-off",hex:"F1810",version:"6.1.95"},{name:"projector-screen-variant-off-outline",hex:"F1811",version:"6.1.95"},{name:"projector-screen-variant-outline",hex:"F1812",version:"6.1.95"},{name:"propane-tank",hex:"F1357",version:"4.9.95"},{name:"propane-tank-outline",hex:"F1358",version:"4.9.95"},{name:"protocol",hex:"F0FD8",version:"4.0.96"},{name:"publish",hex:"F06A7",version:"1.7.12"},{name:"publish-off",hex:"F1945",version:"6.4.95"},{name:"pulse",hex:"F0430",version:"1.5.54"},{name:"pump",hex:"F1402",version:"5.1.45"},{name:"pumpkin",hex:"F0BBF",version:"3.0.39"},{name:"purse",hex:"F0F1C",version:"3.8.95"},{name:"purse-outline",hex:"F0F1D",version:"3.8.95"},{name:"puzzle",hex:"F0431",version:"1.5.54"},{name:"puzzle-check",hex:"F1426",version:"5.2.45"},{name:"puzzle-check-outline",hex:"F1427",version:"5.2.45"},{name:"puzzle-edit",hex:"F14D3",version:"5.3.45"},{name:"puzzle-edit-outline",hex:"F14D9",version:"5.3.45"},{name:"puzzle-heart",hex:"F14D4",version:"5.3.45"},{name:"puzzle-heart-outline",hex:"F14DA",version:"5.3.45"},{name:"puzzle-minus",hex:"F14D1",version:"5.3.45"},{name:"puzzle-minus-outline",hex:"F14D7",version:"5.3.45"},{name:"puzzle-outline",hex:"F0A66",version:"2.6.95"},{name:"puzzle-plus",hex:"F14D0",version:"5.3.45"},{name:"puzzle-plus-outline",hex:"F14D6",version:"5.3.45"},{name:"puzzle-remove",hex:"F14D2",version:"5.3.45"},{name:"puzzle-remove-outline",hex:"F14D8",version:"5.3.45"},{name:"puzzle-star",hex:"F14D5",version:"5.3.45"},{name:"puzzle-star-outline",hex:"F14DB",version:"5.3.45"},{name:"pyramid",hex:"F1952",version:"6.4.95"},{name:"pyramid-off",hex:"F1953",version:"6.4.95"},{name:"qi",hex:"F0999",version:"2.4.85"},{name:"qqchat",hex:"F0605",version:"1.5.54"},{name:"qrcode",hex:"F0432",version:"1.5.54"},{name:"qrcode-edit",hex:"F08B8",version:"2.2.43"},{name:"qrcode-minus",hex:"F118C",version:"4.4.95"},{name:"qrcode-plus",hex:"F118B",version:"4.4.95"},{name:"qrcode-remove",hex:"F118D",version:"4.4.95"},{name:"qrcode-scan",hex:"F0433",version:"1.5.54"},{name:"quadcopter",hex:"F0434",version:"1.5.54"},{name:"quality-high",hex:"F0435",version:"1.5.54"},{name:"quality-low",hex:"F0A0C",version:"2.5.94"},{name:"quality-medium",hex:"F0A0D",version:"2.5.94"},{name:"quora",hex:"F0D29",version:"3.3.92"},{name:"rabbit",hex:"F0907",version:"2.3.50"},{name:"racing-helmet",hex:"F0D93",version:"3.4.93"},{name:"racquetball",hex:"F0D94",version:"3.4.93"},{name:"radar",hex:"F0437",version:"1.5.54"},{name:"radiator",hex:"F0438",version:"1.5.54"},{name:"radiator-disabled",hex:"F0AD7",version:"2.7.94"},{name:"radiator-off",hex:"F0AD8",version:"2.7.94"},{name:"radio",hex:"F0439",version:"1.5.54"},{name:"radio-am",hex:"F0CBE",version:"3.2.89"},{name:"radio-fm",hex:"F0CBF",version:"3.2.89"},{name:"radio-handheld",hex:"F043A",version:"1.5.54"},{name:"radio-off",hex:"F121C",version:"4.6.95"},{name:"radio-tower",hex:"F043B",version:"1.5.54"},{name:"radioactive",hex:"F043C",version:"1.5.54"},{name:"radioactive-circle",hex:"F185D",version:"6.2.95"},{name:"radioactive-circle-outline",hex:"F185E",version:"6.2.95"},{name:"radioactive-off",hex:"F0EC1",version:"3.7.94"},{name:"radiobox-blank",hex:"F043D",version:"1.5.54"},{name:"radiobox-marked",hex:"F043E",version:"1.5.54"},{name:"radiology-box",hex:"F14C5",version:"5.3.45"},{name:"radiology-box-outline",hex:"F14C6",version:"5.3.45"},{name:"radius",hex:"F0CC0",version:"3.2.89"},{name:"radius-outline",hex:"F0CC1",version:"3.2.89"},{name:"railroad-light",hex:"F0F1E",version:"3.8.95"},{name:"rake",hex:"F1544",version:"5.4.55"},{name:"raspberry-pi",hex:"F043F",version:"1.5.54"},{name:"ray-end",hex:"F0440",version:"1.5.54"},{name:"ray-end-arrow",hex:"F0441",version:"1.5.54"},{name:"ray-start",hex:"F0442",version:"1.5.54"},{name:"ray-start-arrow",hex:"F0443",version:"1.5.54"},{name:"ray-start-end",hex:"F0444",version:"1.5.54"},{name:"ray-start-vertex-end",hex:"F15D8",version:"5.6.55"},{name:"ray-vertex",hex:"F0445",version:"1.5.54"},{name:"razor-double-edge",hex:"F1997",version:"6.5.95"},{name:"razor-single-edge",hex:"F1998",version:"6.5.95"},{name:"react",hex:"F0708",version:"1.8.36"},{name:"read",hex:"F0447",version:"1.5.54"},{name:"receipt",hex:"F0449",version:"1.5.54"},{name:"record",hex:"F044A",version:"1.5.54"},{name:"record-circle",hex:"F0EC2",version:"3.7.94"},{name:"record-circle-outline",hex:"F0EC3",version:"3.7.94"},{name:"record-player",hex:"F099A",version:"2.4.85"},{name:"record-rec",hex:"F044B",version:"1.5.54"},{name:"rectangle",hex:"F0E5E",version:"3.6.95"},{name:"rectangle-outline",hex:"F0E5F",version:"3.6.95"},{name:"recycle",hex:"F044C",version:"1.5.54"},{name:"recycle-variant",hex:"F139D",version:"5.0.45"},{name:"reddit",hex:"F044D",version:"1.5.54"},{name:"redhat",hex:"F111B",version:"4.3.95"},{name:"redo",hex:"F044E",version:"1.5.54"},{name:"redo-variant",hex:"F044F",version:"1.5.54"},{name:"reflect-horizontal",hex:"F0A0E",version:"2.5.94"},{name:"reflect-vertical",hex:"F0A0F",version:"2.5.94"},{name:"refresh",hex:"F0450",version:"1.5.54"},{name:"refresh-auto",hex:"F18F2",version:"6.3.95"},{name:"refresh-circle",hex:"F1377",version:"4.9.95"},{name:"regex",hex:"F0451",version:"1.5.54"},{name:"registered-trademark",hex:"F0A67",version:"2.6.95"},{name:"reiterate",hex:"F1588",version:"5.5.55"},{name:"relation-many-to-many",hex:"F1496",version:"5.3.45"},{name:"relation-many-to-one",hex:"F1497",version:"5.3.45"},{name:"relation-many-to-one-or-many",hex:"F1498",version:"5.3.45"},{name:"relation-many-to-only-one",hex:"F1499",version:"5.3.45"},{name:"relation-many-to-zero-or-many",hex:"F149A",version:"5.3.45"},{name:"relation-many-to-zero-or-one",hex:"F149B",version:"5.3.45"},{name:"relation-one-or-many-to-many",hex:"F149C",version:"5.3.45"},{name:"relation-one-or-many-to-one",hex:"F149D",version:"5.3.45"},{name:"relation-one-or-many-to-one-or-many",hex:"F149E",version:"5.3.45"},{name:"relation-one-or-many-to-only-one",hex:"F149F",version:"5.3.45"},{name:"relation-one-or-many-to-zero-or-many",hex:"F14A0",version:"5.3.45"},{name:"relation-one-or-many-to-zero-or-one",hex:"F14A1",version:"5.3.45"},{name:"relation-one-to-many",hex:"F14A2",version:"5.3.45"},{name:"relation-one-to-one",hex:"F14A3",version:"5.3.45"},{name:"relation-one-to-one-or-many",hex:"F14A4",version:"5.3.45"},{name:"relation-one-to-only-one",hex:"F14A5",version:"5.3.45"},{name:"relation-one-to-zero-or-many",hex:"F14A6",version:"5.3.45"},{name:"relation-one-to-zero-or-one",hex:"F14A7",version:"5.3.45"},{name:"relation-only-one-to-many",hex:"F14A8",version:"5.3.45"},{name:"relation-only-one-to-one",hex:"F14A9",version:"5.3.45"},{name:"relation-only-one-to-one-or-many",hex:"F14AA",version:"5.3.45"},{name:"relation-only-one-to-only-one",hex:"F14AB",version:"5.3.45"},{name:"relation-only-one-to-zero-or-many",hex:"F14AC",version:"5.3.45"},{name:"relation-only-one-to-zero-or-one",hex:"F14AD",version:"5.3.45"},{name:"relation-zero-or-many-to-many",hex:"F14AE",version:"5.3.45"},{name:"relation-zero-or-many-to-one",hex:"F14AF",version:"5.3.45"},{name:"relation-zero-or-many-to-one-or-many",hex:"F14B0",version:"5.3.45"},{name:"relation-zero-or-many-to-only-one",hex:"F14B1",version:"5.3.45"},{name:"relation-zero-or-many-to-zero-or-many",hex:"F14B2",version:"5.3.45"},{name:"relation-zero-or-many-to-zero-or-one",hex:"F14B3",version:"5.3.45"},{name:"relation-zero-or-one-to-many",hex:"F14B4",version:"5.3.45"},{name:"relation-zero-or-one-to-one",hex:"F14B5",version:"5.3.45"},{name:"relation-zero-or-one-to-one-or-many",hex:"F14B6",version:"5.3.45"},{name:"relation-zero-or-one-to-only-one",hex:"F14B7",version:"5.3.45"},{name:"relation-zero-or-one-to-zero-or-many",hex:"F14B8",version:"5.3.45"},{name:"relation-zero-or-one-to-zero-or-one",hex:"F14B9",version:"5.3.45"},{name:"relative-scale",hex:"F0452",version:"1.5.54"},{name:"reload",hex:"F0453",version:"1.5.54"},{name:"reload-alert",hex:"F110B",version:"4.3.95"},{name:"reminder",hex:"F088C",version:"2.1.99"},{name:"remote",hex:"F0454",version:"1.5.54"},{name:"remote-desktop",hex:"F08B9",version:"2.2.43"},{name:"remote-off",hex:"F0EC4",version:"3.7.94"},{name:"remote-tv",hex:"F0EC5",version:"3.7.94"},{name:"remote-tv-off",hex:"F0EC6",version:"3.7.94"},{name:"rename-box",hex:"F0455",version:"1.5.54"},{name:"reorder-horizontal",hex:"F0688",version:"1.7.12"},{name:"reorder-vertical",hex:"F0689",version:"1.7.12"},{name:"repeat",hex:"F0456",version:"1.5.54"},{name:"repeat-off",hex:"F0457",version:"1.5.54"},{name:"repeat-once",hex:"F0458",version:"1.5.54"},{name:"repeat-variant",hex:"F0547",version:"1.5.54"},{name:"replay",hex:"F0459",version:"1.5.54"},{name:"reply",hex:"F045A",version:"1.5.54"},{name:"reply-all",hex:"F045B",version:"1.5.54"},{name:"reply-all-outline",hex:"F0F1F",version:"3.8.95"},{name:"reply-circle",hex:"F11AE",version:"4.5.95"},{name:"reply-outline",hex:"F0F20",version:"3.8.95"},{name:"reproduction",hex:"F045C",version:"1.5.54"},{name:"resistor",hex:"F0B44",version:"2.8.94"},{name:"resistor-nodes",hex:"F0B45",version:"2.8.94"},{name:"resize",hex:"F0A68",version:"2.6.95"},{name:"resize-bottom-right",hex:"F045D",version:"1.5.54"},{name:"responsive",hex:"F045E",version:"1.5.54"},{name:"restart",hex:"F0709",version:"1.8.36"},{name:"restart-alert",hex:"F110C",version:"4.3.95"},{name:"restart-off",hex:"F0D95",version:"3.4.93"},{name:"restore",hex:"F099B",version:"2.4.85"},{name:"restore-alert",hex:"F110D",version:"4.3.95"},{name:"rewind",hex:"F045F",version:"1.5.54"},{name:"rewind-10",hex:"F0D2A",version:"3.3.92"},{name:"rewind-15",hex:"F1946",version:"6.4.95"},{name:"rewind-30",hex:"F0D96",version:"3.4.93"},{name:"rewind-5",hex:"F11F9",version:"4.6.95"},{name:"rewind-60",hex:"F160C",version:"5.6.55"},{name:"rewind-outline",hex:"F070A",version:"1.8.36"},{name:"rhombus",hex:"F070B",version:"1.8.36"},{name:"rhombus-medium",hex:"F0A10",version:"2.5.94"},{name:"rhombus-medium-outline",hex:"F14DC",version:"5.3.45"},{name:"rhombus-outline",hex:"F070C",version:"1.8.36"},{name:"rhombus-split",hex:"F0A11",version:"2.5.94"},{name:"rhombus-split-outline",hex:"F14DD",version:"5.3.45"},{name:"ribbon",hex:"F0460",version:"1.5.54"},{name:"rice",hex:"F07EA",version:"2.0.46"},{name:"rickshaw",hex:"F15BB",version:"5.6.55"},{name:"rickshaw-electric",hex:"F15BC",version:"5.6.55"},{name:"ring",hex:"F07EB",version:"2.0.46"},{name:"rivet",hex:"F0E60",version:"3.6.95"},{name:"road",hex:"F0461",version:"1.5.54"},{name:"road-variant",hex:"F0462",version:"1.5.54"},{name:"robber",hex:"F1058",version:"4.1.95"},{name:"robot",hex:"F06A9",version:"1.7.12"},{name:"robot-angry",hex:"F169D",version:"5.8.55"},{name:"robot-angry-outline",hex:"F169E",version:"5.8.55"},{name:"robot-confused",hex:"F169F",version:"5.8.55"},{name:"robot-confused-outline",hex:"F16A0",version:"5.8.55"},{name:"robot-dead",hex:"F16A1",version:"5.8.55"},{name:"robot-dead-outline",hex:"F16A2",version:"5.8.55"},{name:"robot-excited",hex:"F16A3",version:"5.8.55"},{name:"robot-excited-outline",hex:"F16A4",version:"5.8.55"},{name:"robot-happy",hex:"F1719",version:"5.9.55"},{name:"robot-happy-outline",hex:"F171A",version:"5.9.55"},{name:"robot-industrial",hex:"F0B46",version:"2.8.94"},{name:"robot-love",hex:"F16A5",version:"5.8.55"},{name:"robot-love-outline",hex:"F16A6",version:"5.8.55"},{name:"robot-mower",hex:"F11F7",version:"4.6.95"},{name:"robot-mower-outline",hex:"F11F3",version:"4.5.95"},{name:"robot-off",hex:"F16A7",version:"5.8.55"},{name:"robot-off-outline",hex:"F167B",version:"5.7.55"},{name:"robot-outline",hex:"F167A",version:"5.7.55"},{name:"robot-vacuum",hex:"F070D",version:"1.8.36"},{name:"robot-vacuum-variant",hex:"F0908",version:"2.3.50"},{name:"rocket",hex:"F0463",version:"1.5.54"},{name:"rocket-launch",hex:"F14DE",version:"5.3.45"},{name:"rocket-launch-outline",hex:"F14DF",version:"5.3.45"},{name:"rocket-outline",hex:"F13AF",version:"5.0.45"},{name:"rodent",hex:"F1327",version:"4.9.95"},{name:"roller-skate",hex:"F0D2B",version:"3.3.92"},{name:"roller-skate-off",hex:"F0145",version:"1.5.54"},{name:"rollerblade",hex:"F0D2C",version:"3.3.92"},{name:"rollerblade-off",hex:"F002E",version:"1.5.54"},{name:"rollupjs",hex:"F0BC0",version:"3.0.39"},{name:"roman-numeral-1",hex:"F1088",version:"4.2.95"},{name:"roman-numeral-10",hex:"F1091",version:"4.2.95"},{name:"roman-numeral-2",hex:"F1089",version:"4.2.95"},{name:"roman-numeral-3",hex:"F108A",version:"4.2.95"},{name:"roman-numeral-4",hex:"F108B",version:"4.2.95"},{name:"roman-numeral-5",hex:"F108C",version:"4.2.95"},{name:"roman-numeral-6",hex:"F108D",version:"4.2.95"},{name:"roman-numeral-7",hex:"F108E",version:"4.2.95"},{name:"roman-numeral-8",hex:"F108F",version:"4.2.95"},{name:"roman-numeral-9",hex:"F1090",version:"4.2.95"},{name:"room-service",hex:"F088D",version:"2.1.99"},{name:"room-service-outline",hex:"F0D97",version:"3.4.93"},{name:"rotate-360",hex:"F1999",version:"6.5.95"},{name:"rotate-3d",hex:"F0EC7",version:"3.7.94"},{name:"rotate-3d-variant",hex:"F0464",version:"1.5.54"},{name:"rotate-left",hex:"F0465",version:"1.5.54"},{name:"rotate-left-variant",hex:"F0466",version:"1.5.54"},{name:"rotate-orbit",hex:"F0D98",version:"3.4.93"},{name:"rotate-right",hex:"F0467",version:"1.5.54"},{name:"rotate-right-variant",hex:"F0468",version:"1.5.54"},{name:"rounded-corner",hex:"F0607",version:"1.5.54"},{name:"router",hex:"F11E2",version:"4.5.95"},{name:"router-network",hex:"F1087",version:"4.2.95"},{name:"router-wireless",hex:"F0469",version:"1.5.54"},{name:"router-wireless-off",hex:"F15A3",version:"5.5.55"},{name:"router-wireless-settings",hex:"F0A69",version:"2.6.95"},{name:"routes",hex:"F046A",version:"1.5.54"},{name:"routes-clock",hex:"F1059",version:"4.1.95"},{name:"rowing",hex:"F0608",version:"1.5.54"},{name:"rss",hex:"F046B",version:"1.5.54"},{name:"rss-box",hex:"F046C",version:"1.5.54"},{name:"rss-off",hex:"F0F21",version:"3.8.95"},{name:"rug",hex:"F1475",version:"5.2.45"},{name:"rugby",hex:"F0D99",version:"3.4.93"},{name:"ruler",hex:"F046D",version:"1.5.54"},{name:"ruler-square",hex:"F0CC2",version:"3.2.89"},{name:"ruler-square-compass",hex:"F0EBE",version:"3.7.94"},{name:"run",hex:"F070E",version:"1.8.36"},{name:"run-fast",hex:"F046E",version:"1.5.54"},{name:"rv-truck",hex:"F11D4",version:"4.5.95"},{name:"sack",hex:"F0D2E",version:"3.3.92"},{name:"sack-percent",hex:"F0D2F",version:"3.3.92"},{name:"safe",hex:"F0A6A",version:"2.6.95"},{name:"safe-square",hex:"F127C",version:"4.7.95"},{name:"safe-square-outline",hex:"F127D",version:"4.7.95"},{name:"safety-goggles",hex:"F0D30",version:"3.3.92"},{name:"sail-boat",hex:"F0EC8",version:"3.7.94"},{name:"sale",hex:"F046F",version:"1.5.54"},{name:"salesforce",hex:"F088E",version:"2.1.99"},{name:"sass",hex:"F07EC",version:"2.0.46"},{name:"satellite",hex:"F0470",version:"1.5.54"},{name:"satellite-uplink",hex:"F0909",version:"2.3.50"},{name:"satellite-variant",hex:"F0471",version:"1.5.54"},{name:"sausage",hex:"F08BA",version:"2.2.43"},{name:"sausage-off",hex:"F1789",version:"6.1.95"},{name:"saw-blade",hex:"F0E61",version:"3.6.95"},{name:"sawtooth-wave",hex:"F147A",version:"5.2.45"},{name:"saxophone",hex:"F0609",version:"1.5.54"},{name:"scale",hex:"F0472",version:"1.5.54"},{name:"scale-balance",hex:"F05D1",version:"1.5.54"},{name:"scale-bathroom",hex:"F0473",version:"1.5.54"},{name:"scale-off",hex:"F105A",version:"4.1.95"},{name:"scale-unbalanced",hex:"F19B8",version:"6.5.95"},{name:"scan-helper",hex:"F13D8",version:"5.1.45"},{name:"scanner",hex:"F06AB",version:"1.7.12"},{name:"scanner-off",hex:"F090A",version:"2.3.50"},{name:"scatter-plot",hex:"F0EC9",version:"3.7.94"},{name:"scatter-plot-outline",hex:"F0ECA",version:"3.7.94"},{name:"scent",hex:"F1958",version:"6.4.95"},{name:"scent-off",hex:"F1959",version:"6.4.95"},{name:"school",hex:"F0474",version:"1.5.54"},{name:"school-outline",hex:"F1180",version:"4.4.95"},{name:"scissors-cutting",hex:"F0A6B",version:"2.6.95"},{name:"scooter",hex:"F15BD",version:"5.6.55"},{name:"scooter-electric",hex:"F15BE",version:"5.6.55"},{name:"scoreboard",hex:"F127E",version:"4.7.95"},{name:"scoreboard-outline",hex:"F127F",version:"4.7.95"},{name:"screen-rotation",hex:"F0475",version:"1.5.54"},{name:"screen-rotation-lock",hex:"F0478",version:"1.5.54"},{name:"screw-flat-top",hex:"F0DF3",version:"3.5.94"},{name:"screw-lag",hex:"F0DF4",version:"3.5.94"},{name:"screw-machine-flat-top",hex:"F0DF5",version:"3.5.94"},{name:"screw-machine-round-top",hex:"F0DF6",version:"3.5.94"},{name:"screw-round-top",hex:"F0DF7",version:"3.5.94"},{name:"screwdriver",hex:"F0476",version:"1.5.54"},{name:"script",hex:"F0BC1",version:"3.0.39"},{name:"script-outline",hex:"F0477",version:"1.5.54"},{name:"script-text",hex:"F0BC2",version:"3.0.39"},{name:"script-text-key",hex:"F1725",version:"5.9.55"},{name:"script-text-key-outline",hex:"F1726",version:"5.9.55"},{name:"script-text-outline",hex:"F0BC3",version:"3.0.39"},{name:"script-text-play",hex:"F1727",version:"5.9.55"},{name:"script-text-play-outline",hex:"F1728",version:"5.9.55"},{name:"sd",hex:"F0479",version:"1.5.54"},{name:"seal",hex:"F047A",version:"1.5.54"},{name:"seal-variant",hex:"F0FD9",version:"4.0.96"},{name:"search-web",hex:"F070F",version:"1.8.36"},{name:"seat",hex:"F0CC3",version:"3.2.89"},{name:"seat-flat",hex:"F047B",version:"1.5.54"},{name:"seat-flat-angled",hex:"F047C",version:"1.5.54"},{name:"seat-individual-suite",hex:"F047D",version:"1.5.54"},{name:"seat-legroom-extra",hex:"F047E",version:"1.5.54"},{name:"seat-legroom-normal",hex:"F047F",version:"1.5.54"},{name:"seat-legroom-reduced",hex:"F0480",version:"1.5.54"},{name:"seat-outline",hex:"F0CC4",version:"3.2.89"},{name:"seat-passenger",hex:"F1249",version:"4.6.95"},{name:"seat-recline-extra",hex:"F0481",version:"1.5.54"},{name:"seat-recline-normal",hex:"F0482",version:"1.5.54"},{name:"seatbelt",hex:"F0CC5",version:"3.2.89"},{name:"security",hex:"F0483",version:"1.5.54"},{name:"security-network",hex:"F0484",version:"1.5.54"},{name:"seed",hex:"F0E62",version:"3.6.95"},{name:"seed-off",hex:"F13FD",version:"5.1.45"},{name:"seed-off-outline",hex:"F13FE",version:"5.1.45"},{name:"seed-outline",hex:"F0E63",version:"3.6.95"},{name:"seesaw",hex:"F15A4",version:"5.5.55"},{name:"segment",hex:"F0ECB",version:"3.7.94"},{name:"select",hex:"F0485",version:"1.5.54"},{name:"select-all",hex:"F0486",version:"1.5.54"},{name:"select-color",hex:"F0D31",version:"3.3.92"},{name:"select-compare",hex:"F0AD9",version:"2.7.94"},{name:"select-drag",hex:"F0A6C",version:"2.6.95"},{name:"select-group",hex:"F0F82",version:"3.9.97"},{name:"select-inverse",hex:"F0487",version:"1.5.54"},{name:"select-marker",hex:"F1280",version:"4.7.95"},{name:"select-multiple",hex:"F1281",version:"4.7.95"},{name:"select-multiple-marker",hex:"F1282",version:"4.7.95"},{name:"select-off",hex:"F0488",version:"1.5.54"},{name:"select-place",hex:"F0FDA",version:"4.0.96"},{name:"select-remove",hex:"F17C1",version:"6.1.95"},{name:"select-search",hex:"F1204",version:"4.6.95"},{name:"selection",hex:"F0489",version:"1.5.54"},{name:"selection-drag",hex:"F0A6D",version:"2.6.95"},{name:"selection-ellipse",hex:"F0D32",version:"3.3.92"},{name:"selection-ellipse-arrow-inside",hex:"F0F22",version:"3.8.95"},{name:"selection-ellipse-remove",hex:"F17C2",version:"6.1.95"},{name:"selection-marker",hex:"F1283",version:"4.7.95"},{name:"selection-multiple",hex:"F1285",version:"4.7.95"},{name:"selection-multiple-marker",hex:"F1284",version:"4.7.95"},{name:"selection-off",hex:"F0777",version:"1.9.32"},{name:"selection-remove",hex:"F17C3",version:"6.1.95"},{name:"selection-search",hex:"F1205",version:"4.6.95"},{name:"semantic-web",hex:"F1316",version:"4.8.95"},{name:"send",hex:"F048A",version:"1.5.54"},{name:"send-check",hex:"F1161",version:"4.4.95"},{name:"send-check-outline",hex:"F1162",version:"4.4.95"},{name:"send-circle",hex:"F0DF8",version:"3.5.94"},{name:"send-circle-outline",hex:"F0DF9",version:"3.5.94"},{name:"send-clock",hex:"F1163",version:"4.4.95"},{name:"send-clock-outline",hex:"F1164",version:"4.4.95"},{name:"send-lock",hex:"F07ED",version:"2.0.46"},{name:"send-lock-outline",hex:"F1166",version:"4.4.95"},{name:"send-outline",hex:"F1165",version:"4.4.95"},{name:"serial-port",hex:"F065C",version:"1.6.50"},{name:"server",hex:"F048B",version:"1.5.54"},{name:"server-minus",hex:"F048C",version:"1.5.54"},{name:"server-network",hex:"F048D",version:"1.5.54"},{name:"server-network-off",hex:"F048E",version:"1.5.54"},{name:"server-off",hex:"F048F",version:"1.5.54"},{name:"server-plus",hex:"F0490",version:"1.5.54"},{name:"server-remove",hex:"F0491",version:"1.5.54"},{name:"server-security",hex:"F0492",version:"1.5.54"},{name:"set-all",hex:"F0778",version:"1.9.32"},{name:"set-center",hex:"F0779",version:"1.9.32"},{name:"set-center-right",hex:"F077A",version:"1.9.32"},{name:"set-left",hex:"F077B",version:"1.9.32"},{name:"set-left-center",hex:"F077C",version:"1.9.32"},{name:"set-left-right",hex:"F077D",version:"1.9.32"},{name:"set-merge",hex:"F14E0",version:"5.3.45"},{name:"set-none",hex:"F077E",version:"1.9.32"},{name:"set-right",hex:"F077F",version:"1.9.32"},{name:"set-split",hex:"F14E1",version:"5.3.45"},{name:"set-square",hex:"F145D",version:"5.2.45"},{name:"set-top-box",hex:"F099F",version:"2.4.85"},{name:"settings-helper",hex:"F0A6E",version:"2.6.95"},{name:"shaker",hex:"F110E",version:"4.3.95"},{name:"shaker-outline",hex:"F110F",version:"4.3.95"},{name:"shape",hex:"F0831",version:"2.1.19"},{name:"shape-circle-plus",hex:"F065D",version:"1.6.50"},{name:"shape-outline",hex:"F0832",version:"2.1.19"},{name:"shape-oval-plus",hex:"F11FA",version:"4.6.95"},{name:"shape-plus",hex:"F0495",version:"1.5.54"},{name:"shape-polygon-plus",hex:"F065E",version:"1.6.50"},{name:"shape-rectangle-plus",hex:"F065F",version:"1.6.50"},{name:"shape-square-plus",hex:"F0660",version:"1.6.50"},{name:"shape-square-rounded-plus",hex:"F14FA",version:"5.4.55"},{name:"share",hex:"F0496",version:"1.5.54"},{name:"share-all",hex:"F11F4",version:"4.6.95"},{name:"share-all-outline",hex:"F11F5",version:"4.6.95"},{name:"share-circle",hex:"F11AD",version:"4.5.95"},{name:"share-off",hex:"F0F23",version:"3.8.95"},{name:"share-off-outline",hex:"F0F24",version:"3.8.95"},{name:"share-outline",hex:"F0932",version:"2.3.54"},{name:"share-variant",hex:"F0497",version:"1.5.54"},{name:"share-variant-outline",hex:"F1514",version:"5.4.55"},{name:"shark",hex:"F18BA",version:"6.3.95"},{name:"shark-fin",hex:"F1673",version:"5.7.55"},{name:"shark-fin-outline",hex:"F1674",version:"5.7.55"},{name:"shark-off",hex:"F18BB",version:"6.3.95"},{name:"sheep",hex:"F0CC6",version:"3.2.89"},{name:"shield",hex:"F0498",version:"1.5.54"},{name:"shield-account",hex:"F088F",version:"2.1.99"},{name:"shield-account-outline",hex:"F0A12",version:"2.5.94"},{name:"shield-account-variant",hex:"F15A7",version:"5.5.55"},{name:"shield-account-variant-outline",hex:"F15A8",version:"5.5.55"},{name:"shield-airplane",hex:"F06BB",version:"1.7.22"},{name:"shield-airplane-outline",hex:"F0CC7",version:"3.2.89"},{name:"shield-alert",hex:"F0ECC",version:"3.7.94"},{name:"shield-alert-outline",hex:"F0ECD",version:"3.7.94"},{name:"shield-bug",hex:"F13DA",version:"5.1.45"},{name:"shield-bug-outline",hex:"F13DB",version:"5.1.45"},{name:"shield-car",hex:"F0F83",version:"3.9.97"},{name:"shield-check",hex:"F0565",version:"1.5.54"},{name:"shield-check-outline",hex:"F0CC8",version:"3.2.89"},{name:"shield-cross",hex:"F0CC9",version:"3.2.89"},{name:"shield-cross-outline",hex:"F0CCA",version:"3.2.89"},{name:"shield-crown",hex:"F18BC",version:"6.3.95"},{name:"shield-crown-outline",hex:"F18BD",version:"6.3.95"},{name:"shield-edit",hex:"F11A0",version:"4.5.95"},{name:"shield-edit-outline",hex:"F11A1",version:"4.5.95"},{name:"shield-half",hex:"F1360",version:"4.9.95"},{name:"shield-half-full",hex:"F0780",version:"1.9.32"},{name:"shield-home",hex:"F068A",version:"1.7.12"},{name:"shield-home-outline",hex:"F0CCB",version:"3.2.89"},{name:"shield-key",hex:"F0BC4",version:"3.0.39"},{name:"shield-key-outline",hex:"F0BC5",version:"3.0.39"},{name:"shield-link-variant",hex:"F0D33",version:"3.3.92"},{name:"shield-link-variant-outline",hex:"F0D34",version:"3.3.92"},{name:"shield-lock",hex:"F099D",version:"2.4.85"},{name:"shield-lock-open",hex:"F199A",version:"6.5.95"},{name:"shield-lock-open-outline",hex:"F199B",version:"6.5.95"},{name:"shield-lock-outline",hex:"F0CCC",version:"3.2.89"},{name:"shield-moon",hex:"F1828",version:"6.1.95"},{name:"shield-moon-outline",hex:"F1829",version:"6.1.95"},{name:"shield-off",hex:"F099E",version:"2.4.85"},{name:"shield-off-outline",hex:"F099C",version:"2.4.85"},{name:"shield-outline",hex:"F0499",version:"1.5.54"},{name:"shield-plus",hex:"F0ADA",version:"2.7.94"},{name:"shield-plus-outline",hex:"F0ADB",version:"2.7.94"},{name:"shield-refresh",hex:"F00AA",version:"1.5.54"},{name:"shield-refresh-outline",hex:"F01E0",version:"1.5.54"},{name:"shield-remove",hex:"F0ADC",version:"2.7.94"},{name:"shield-remove-outline",hex:"F0ADD",version:"2.7.94"},{name:"shield-search",hex:"F0D9A",version:"3.4.93"},{name:"shield-star",hex:"F113B",version:"4.4.95"},{name:"shield-star-outline",hex:"F113C",version:"4.4.95"},{name:"shield-sun",hex:"F105D",version:"4.1.95"},{name:"shield-sun-outline",hex:"F105E",version:"4.1.95"},{name:"shield-sword",hex:"F18BE",version:"6.3.95"},{name:"shield-sword-outline",hex:"F18BF",version:"6.3.95"},{name:"shield-sync",hex:"F11A2",version:"4.5.95"},{name:"shield-sync-outline",hex:"F11A3",version:"4.5.95"},{name:"shimmer",hex:"F1545",version:"5.4.55"},{name:"ship-wheel",hex:"F0833",version:"2.1.19"},{name:"shipping-pallet",hex:"F184E",version:"6.2.95"},{name:"shoe-ballet",hex:"F15CA",version:"5.6.55"},{name:"shoe-cleat",hex:"F15C7",version:"5.6.55"},{name:"shoe-formal",hex:"F0B47",version:"2.8.94"},{name:"shoe-heel",hex:"F0B48",version:"2.8.94"},{name:"shoe-print",hex:"F0DFA",version:"3.5.94"},{name:"shoe-sneaker",hex:"F15C8",version:"5.6.55"},{name:"shopping",hex:"F049A",version:"1.5.54"},{name:"shopping-music",hex:"F049B",version:"1.5.54"},{name:"shopping-outline",hex:"F11D5",version:"4.5.95"},{name:"shopping-search",hex:"F0F84",version:"3.9.97"},{name:"shore",hex:"F14F9",version:"5.4.55"},{name:"shovel",hex:"F0710",version:"1.8.36"},{name:"shovel-off",hex:"F0711",version:"1.8.36"},{name:"shower",hex:"F09A0",version:"2.4.85"},{name:"shower-head",hex:"F09A1",version:"2.4.85"},{name:"shredder",hex:"F049C",version:"1.5.54"},{name:"shuffle",hex:"F049D",version:"1.5.54"},{name:"shuffle-disabled",hex:"F049E",version:"1.5.54"},{name:"shuffle-variant",hex:"F049F",version:"1.5.54"},{name:"shuriken",hex:"F137F",version:"4.9.95"},{name:"sickle",hex:"F18C0",version:"6.3.95"},{name:"sigma",hex:"F04A0",version:"1.5.54"},{name:"sigma-lower",hex:"F062B",version:"1.6.50"},{name:"sign-caution",hex:"F04A1",version:"1.5.54"},{name:"sign-direction",hex:"F0781",version:"1.9.32"},{name:"sign-direction-minus",hex:"F1000",version:"4.0.96"},{name:"sign-direction-plus",hex:"F0FDC",version:"4.0.96"},{name:"sign-direction-remove",hex:"F0FDD",version:"4.0.96"},{name:"sign-pole",hex:"F14F8",version:"5.4.55"},{name:"sign-real-estate",hex:"F1118",version:"4.3.95"},{name:"sign-text",hex:"F0782",version:"1.9.32"},{name:"signal",hex:"F04A2",version:"1.5.54"},{name:"signal-2g",hex:"F0712",version:"1.8.36"},{name:"signal-3g",hex:"F0713",version:"1.8.36"},{name:"signal-4g",hex:"F0714",version:"1.8.36"},{name:"signal-5g",hex:"F0A6F",version:"2.6.95"},{name:"signal-cellular-1",hex:"F08BC",version:"2.2.43"},{name:"signal-cellular-2",hex:"F08BD",version:"2.2.43"},{name:"signal-cellular-3",hex:"F08BE",version:"2.2.43"},{name:"signal-cellular-outline",hex:"F08BF",version:"2.2.43"},{name:"signal-distance-variant",hex:"F0E64",version:"3.6.95"},{name:"signal-hspa",hex:"F0715",version:"1.8.36"},{name:"signal-hspa-plus",hex:"F0716",version:"1.8.36"},{name:"signal-off",hex:"F0783",version:"1.9.32"},{name:"signal-variant",hex:"F060A",version:"1.5.54"},{name:"signature",hex:"F0DFB",version:"3.5.94"},{name:"signature-freehand",hex:"F0DFC",version:"3.5.94"},{name:"signature-image",hex:"F0DFD",version:"3.5.94"},{name:"signature-text",hex:"F0DFE",version:"3.5.94"},{name:"silo",hex:"F0B49",version:"2.8.94"},{name:"silverware",hex:"F04A3",version:"1.5.54"},{name:"silverware-clean",hex:"F0FDE",version:"4.0.96"},{name:"silverware-fork",hex:"F04A4",version:"1.5.54"},{name:"silverware-fork-knife",hex:"F0A70",version:"2.6.95"},{name:"silverware-spoon",hex:"F04A5",version:"1.5.54"},{name:"silverware-variant",hex:"F04A6",version:"1.5.54"},{name:"sim",hex:"F04A7",version:"1.5.54"},{name:"sim-alert",hex:"F04A8",version:"1.5.54"},{name:"sim-alert-outline",hex:"F15D3",version:"5.6.55"},{name:"sim-off",hex:"F04A9",version:"1.5.54"},{name:"sim-off-outline",hex:"F15D4",version:"5.6.55"},{name:"sim-outline",hex:"F15D5",version:"5.6.55"},{name:"simple-icons",hex:"F131D",version:"4.8.95"},{name:"sina-weibo",hex:"F0ADF",version:"2.7.94"},{name:"sine-wave",hex:"F095B",version:"2.4.85"},{name:"sitemap",hex:"F04AA",version:"1.5.54"},{name:"sitemap-outline",hex:"F199C",version:"6.5.95"},{name:"size-l",hex:"F13A6",version:"5.0.45"},{name:"size-m",hex:"F13A5",version:"5.0.45"},{name:"size-s",hex:"F13A4",version:"5.0.45"},{name:"size-xl",hex:"F13A7",version:"5.0.45"},{name:"size-xs",hex:"F13A3",version:"5.0.45"},{name:"size-xxl",hex:"F13A8",version:"5.0.45"},{name:"size-xxs",hex:"F13A2",version:"5.0.45"},{name:"size-xxxl",hex:"F13A9",version:"5.0.45"},{name:"skate",hex:"F0D35",version:"3.3.92"},{name:"skate-off",hex:"F0699",version:"1.7.12"},{name:"skateboard",hex:"F14C2",version:"5.3.45"},{name:"skateboarding",hex:"F0501",version:"1.5.54"},{name:"skew-less",hex:"F0D36",version:"3.3.92"},{name:"skew-more",hex:"F0D37",version:"3.3.92"},{name:"ski",hex:"F1304",version:"4.8.95"},{name:"ski-cross-country",hex:"F1305",version:"4.8.95"},{name:"ski-water",hex:"F1306",version:"4.8.95"},{name:"skip-backward",hex:"F04AB",version:"1.5.54"},{name:"skip-backward-outline",hex:"F0F25",version:"3.8.95"},{name:"skip-forward",hex:"F04AC",version:"1.5.54"},{name:"skip-forward-outline",hex:"F0F26",version:"3.8.95"},{name:"skip-next",hex:"F04AD",version:"1.5.54"},{name:"skip-next-circle",hex:"F0661",version:"1.6.50"},{name:"skip-next-circle-outline",hex:"F0662",version:"1.6.50"},{name:"skip-next-outline",hex:"F0F27",version:"3.8.95"},{name:"skip-previous",hex:"F04AE",version:"1.5.54"},{name:"skip-previous-circle",hex:"F0663",version:"1.6.50"},{name:"skip-previous-circle-outline",hex:"F0664",version:"1.6.50"},{name:"skip-previous-outline",hex:"F0F28",version:"3.8.95"},{name:"skull",hex:"F068C",version:"1.7.12"},{name:"skull-crossbones",hex:"F0BC6",version:"3.0.39"},{name:"skull-crossbones-outline",hex:"F0BC7",version:"3.0.39"},{name:"skull-outline",hex:"F0BC8",version:"3.0.39"},{name:"skull-scan",hex:"F14C7",version:"5.3.45"},{name:"skull-scan-outline",hex:"F14C8",version:"5.3.45"},{name:"skype",hex:"F04AF",version:"1.5.54"},{name:"skype-business",hex:"F04B0",version:"1.5.54"},{name:"slack",hex:"F04B1",version:"1.5.54"},{name:"slash-forward",hex:"F0FDF",version:"4.0.96"},{name:"slash-forward-box",hex:"F0FE0",version:"4.0.96"},{name:"sledding",hex:"F041B",version:"1.5.54"},{name:"sleep",hex:"F04B2",version:"1.5.54"},{name:"sleep-off",hex:"F04B3",version:"1.5.54"},{name:"slide",hex:"F15A5",version:"5.5.55"},{name:"slope-downhill",hex:"F0DFF",version:"3.5.94"},{name:"slope-uphill",hex:"F0E00",version:"3.5.94"},{name:"slot-machine",hex:"F1114",version:"4.3.95"},{name:"slot-machine-outline",hex:"F1115",version:"4.3.95"},{name:"smart-card",hex:"F10BD",version:"4.2.95"},{name:"smart-card-off",hex:"F18F7",version:"6.3.95"},{name:"smart-card-off-outline",hex:"F18F8",version:"6.3.95"},{name:"smart-card-outline",hex:"F10BE",version:"4.2.95"},{name:"smart-card-reader",hex:"F10BF",version:"4.2.95"},{name:"smart-card-reader-outline",hex:"F10C0",version:"4.2.95"},{name:"smog",hex:"F0A71",version:"2.6.95"},{name:"smoke",hex:"F1799",version:"6.1.95"},{name:"smoke-detector",hex:"F0392",version:"1.5.54"},{name:"smoke-detector-alert",hex:"F192E",version:"6.4.95"},{name:"smoke-detector-alert-outline",hex:"F192F",version:"6.4.95"},{name:"smoke-detector-off",hex:"F1809",version:"6.1.95"},{name:"smoke-detector-off-outline",hex:"F180A",version:"6.1.95"},{name:"smoke-detector-outline",hex:"F1808",version:"6.1.95"},{name:"smoke-detector-variant",hex:"F180B",version:"6.1.95"},{name:"smoke-detector-variant-alert",hex:"F1930",version:"6.4.95"},{name:"smoke-detector-variant-off",hex:"F180C",version:"6.1.95"},{name:"smoking",hex:"F04B4",version:"1.5.54"},{name:"smoking-off",hex:"F04B5",version:"1.5.54"},{name:"smoking-pipe",hex:"F140D",version:"5.1.45"},{name:"smoking-pipe-off",hex:"F1428",version:"5.2.45"},{name:"snail",hex:"F1677",version:"5.7.55"},{name:"snake",hex:"F150E",version:"5.4.55"},{name:"snapchat",hex:"F04B6",version:"1.5.54"},{name:"snowboard",hex:"F1307",version:"4.8.95"},{name:"snowflake",hex:"F0717",version:"1.8.36"},{name:"snowflake-alert",hex:"F0F29",version:"3.8.95"},{name:"snowflake-melt",hex:"F12CB",version:"4.8.95"},{name:"snowflake-off",hex:"F14E3",version:"5.4.55"},{name:"snowflake-variant",hex:"F0F2A",version:"3.8.95"},{name:"snowman",hex:"F04B7",version:"1.5.54"},{name:"snowmobile",hex:"F06DD",version:"1.8.36"},{name:"soccer",hex:"F04B8",version:"1.5.54"},{name:"soccer-field",hex:"F0834",version:"2.1.19"},{name:"social-distance-2-meters",hex:"F1579",version:"5.5.55"},{name:"social-distance-6-feet",hex:"F157A",version:"5.5.55"},{name:"sofa",hex:"F04B9",version:"1.5.54"},{name:"sofa-outline",hex:"F156D",version:"5.5.55"},{name:"sofa-single",hex:"F156E",version:"5.5.55"},{name:"sofa-single-outline",hex:"F156F",version:"5.5.55"},{name:"solar-panel",hex:"F0D9B",version:"3.4.93"},{name:"solar-panel-large",hex:"F0D9C",version:"3.4.93"},{name:"solar-power",hex:"F0A72",version:"2.6.95"},{name:"soldering-iron",hex:"F1092",version:"4.2.95"},{name:"solid",hex:"F068D",version:"1.7.12"},{name:"sony-playstation",hex:"F0414",version:"1.5.54"},{name:"sort",hex:"F04BA",version:"1.5.54"},{name:"sort-alphabetical-ascending",hex:"F05BD",version:"1.5.54"},{name:"sort-alphabetical-ascending-variant",hex:"F1148",version:"4.4.95"},{name:"sort-alphabetical-descending",hex:"F05BF",version:"1.5.54"},{name:"sort-alphabetical-descending-variant",hex:"F1149",version:"4.4.95"},{name:"sort-alphabetical-variant",hex:"F04BB",version:"1.5.54"},{name:"sort-ascending",hex:"F04BC",version:"1.5.54"},{name:"sort-bool-ascending",hex:"F1385",version:"5.0.45"},{name:"sort-bool-ascending-variant",hex:"F1386",version:"5.0.45"},{name:"sort-bool-descending",hex:"F1387",version:"5.0.45"},{name:"sort-bool-descending-variant",hex:"F1388",version:"5.0.45"},{name:"sort-calendar-ascending",hex:"F1547",version:"5.4.55"},{name:"sort-calendar-descending",hex:"F1548",version:"5.4.55"},{name:"sort-clock-ascending",hex:"F1549",version:"5.4.55"},{name:"sort-clock-ascending-outline",hex:"F154A",version:"5.4.55"},{name:"sort-clock-descending",hex:"F154B",version:"5.4.55"},{name:"sort-clock-descending-outline",hex:"F154C",version:"5.4.55"},{name:"sort-descending",hex:"F04BD",version:"1.5.54"},{name:"sort-numeric-ascending",hex:"F1389",version:"5.0.45"},{name:"sort-numeric-ascending-variant",hex:"F090D",version:"2.3.50"},{name:"sort-numeric-descending",hex:"F138A",version:"5.0.45"},{name:"sort-numeric-descending-variant",hex:"F0AD2",version:"2.7.94"},{name:"sort-numeric-variant",hex:"F04BE",version:"1.5.54"},{name:"sort-reverse-variant",hex:"F033C",version:"1.5.54"},{name:"sort-variant",hex:"F04BF",version:"1.5.54"},{name:"sort-variant-lock",hex:"F0CCD",version:"3.2.89"},{name:"sort-variant-lock-open",hex:"F0CCE",version:"3.2.89"},{name:"sort-variant-remove",hex:"F1147",version:"4.4.95"},{name:"soundbar",hex:"F17DB",version:"6.1.95"},{name:"soundcloud",hex:"F04C0",version:"1.5.54"},{name:"source-branch",hex:"F062C",version:"1.6.50"},{name:"source-branch-check",hex:"F14CF",version:"5.3.45"},{name:"source-branch-minus",hex:"F14CB",version:"5.3.45"},{name:"source-branch-plus",hex:"F14CA",version:"5.3.45"},{name:"source-branch-refresh",hex:"F14CD",version:"5.3.45"},{name:"source-branch-remove",hex:"F14CC",version:"5.3.45"},{name:"source-branch-sync",hex:"F14CE",version:"5.3.45"},{name:"source-commit",hex:"F0718",version:"1.8.36"},{name:"source-commit-end",hex:"F0719",version:"1.8.36"},{name:"source-commit-end-local",hex:"F071A",version:"1.8.36"},{name:"source-commit-local",hex:"F071B",version:"1.8.36"},{name:"source-commit-next-local",hex:"F071C",version:"1.8.36"},{name:"source-commit-start",hex:"F071D",version:"1.8.36"},{name:"source-commit-start-next-local",hex:"F071E",version:"1.8.36"},{name:"source-fork",hex:"F04C1",version:"1.5.54"},{name:"source-merge",hex:"F062D",version:"1.6.50"},{name:"source-pull",hex:"F04C2",version:"1.5.54"},{name:"source-repository",hex:"F0CCF",version:"3.2.89"},{name:"source-repository-multiple",hex:"F0CD0",version:"3.2.89"},{name:"soy-sauce",hex:"F07EE",version:"2.0.46"},{name:"soy-sauce-off",hex:"F13FC",version:"5.1.45"},{name:"spa",hex:"F0CD1",version:"3.2.89"},{name:"spa-outline",hex:"F0CD2",version:"3.2.89"},{name:"space-invaders",hex:"F0BC9",version:"3.0.39"},{name:"space-station",hex:"F1383",version:"4.9.95"},{name:"spade",hex:"F0E65",version:"3.6.95"},{name:"speaker",hex:"F04C3",version:"1.5.54"},{name:"speaker-bluetooth",hex:"F09A2",version:"2.4.85"},{name:"speaker-multiple",hex:"F0D38",version:"3.3.92"},{name:"speaker-off",hex:"F04C4",version:"1.5.54"},{name:"speaker-wireless",hex:"F071F",version:"1.8.36"},{name:"spear",hex:"F1845",version:"6.2.95"},{name:"speedometer",hex:"F04C5",version:"1.5.54"},{name:"speedometer-medium",hex:"F0F85",version:"3.9.97"},{name:"speedometer-slow",hex:"F0F86",version:"3.9.97"},{name:"spellcheck",hex:"F04C6",version:"1.5.54"},{name:"sphere",hex:"F1954",version:"6.4.95"},{name:"sphere-off",hex:"F1955",version:"6.4.95"},{name:"spider",hex:"F11EA",version:"4.5.95"},{name:"spider-thread",hex:"F11EB",version:"4.5.95"},{name:"spider-web",hex:"F0BCA",version:"3.0.39"},{name:"spirit-level",hex:"F14F1",version:"5.4.55"},{name:"spoon-sugar",hex:"F1429",version:"5.2.45"},{name:"spotify",hex:"F04C7",version:"1.5.54"},{name:"spotlight",hex:"F04C8",version:"1.5.54"},{name:"spotlight-beam",hex:"F04C9",version:"1.5.54"},{name:"spray",hex:"F0665",version:"1.6.50"},{name:"spray-bottle",hex:"F0AE0",version:"2.7.94"},{name:"sprinkler",hex:"F105F",version:"4.1.95"},{name:"sprinkler-fire",hex:"F199D",version:"6.5.95"},{name:"sprinkler-variant",hex:"F1060",version:"4.1.95"},{name:"sprout",hex:"F0E66",version:"3.6.95"},{name:"sprout-outline",hex:"F0E67",version:"3.6.95"},{name:"square",hex:"F0764",version:"1.9.32"},{name:"square-circle",hex:"F1500",version:"5.4.55"},{name:"square-edit-outline",hex:"F090C",version:"2.3.50"},{name:"square-medium",hex:"F0A13",version:"2.5.94"},{name:"square-medium-outline",hex:"F0A14",version:"2.5.94"},{name:"square-off",hex:"F12EE",version:"4.8.95"},{name:"square-off-outline",hex:"F12EF",version:"4.8.95"},{name:"square-opacity",hex:"F1854",version:"6.2.95"},{name:"square-outline",hex:"F0763",version:"1.9.32"},{name:"square-root",hex:"F0784",version:"1.9.32"},{name:"square-root-box",hex:"F09A3",version:"2.4.85"},{name:"square-rounded",hex:"F14FB",version:"5.4.55"},{name:"square-rounded-outline",hex:"F14FC",version:"5.4.55"},{name:"square-small",hex:"F0A15",version:"2.5.94"},{name:"square-wave",hex:"F147B",version:"5.2.45"},{name:"squeegee",hex:"F0AE1",version:"2.7.94"},{name:"ssh",hex:"F08C0",version:"2.2.43"},{name:"stack-exchange",hex:"F060B",version:"1.5.54"},{name:"stack-overflow",hex:"F04CC",version:"1.5.54"},{name:"stackpath",hex:"F0359",version:"1.5.54"},{name:"stadium",hex:"F0FF9",version:"4.0.96"},{name:"stadium-variant",hex:"F0720",version:"1.8.36"},{name:"stairs",hex:"F04CD",version:"1.5.54"},{name:"stairs-box",hex:"F139E",version:"5.0.45"},{name:"stairs-down",hex:"F12BE",version:"4.8.95"},{name:"stairs-up",hex:"F12BD",version:"4.8.95"},{name:"stamper",hex:"F0D39",version:"3.3.92"},{name:"standard-definition",hex:"F07EF",version:"2.0.46"},{name:"star",hex:"F04CE",version:"1.5.54"},{name:"star-box",hex:"F0A73",version:"2.6.95"},{name:"star-box-multiple",hex:"F1286",version:"4.7.95"},{name:"star-box-multiple-outline",hex:"F1287",version:"4.7.95"},{name:"star-box-outline",hex:"F0A74",version:"2.6.95"},{name:"star-check",hex:"F1566",version:"5.5.55"},{name:"star-check-outline",hex:"F156A",version:"5.5.55"},{name:"star-circle",hex:"F04CF",version:"1.5.54"},{name:"star-circle-outline",hex:"F09A4",version:"2.4.85"},{name:"star-cog",hex:"F1668",version:"5.7.55"},{name:"star-cog-outline",hex:"F1669",version:"5.7.55"},{name:"star-crescent",hex:"F0979",version:"2.4.85"},{name:"star-david",hex:"F097A",version:"2.4.85"},{name:"star-face",hex:"F09A5",version:"2.4.85"},{name:"star-four-points",hex:"F0AE2",version:"2.7.94"},{name:"star-four-points-outline",hex:"F0AE3",version:"2.7.94"},{name:"star-half",hex:"F0246",version:"1.5.54"},{name:"star-half-full",hex:"F04D0",version:"1.5.54"},{name:"star-minus",hex:"F1564",version:"5.5.55"},{name:"star-minus-outline",hex:"F1568",version:"5.5.55"},{name:"star-off",hex:"F04D1",version:"1.5.54"},{name:"star-off-outline",hex:"F155B",version:"5.5.55"},{name:"star-outline",hex:"F04D2",version:"1.5.54"},{name:"star-plus",hex:"F1563",version:"5.5.55"},{name:"star-plus-outline",hex:"F1567",version:"5.5.55"},{name:"star-remove",hex:"F1565",version:"5.5.55"},{name:"star-remove-outline",hex:"F1569",version:"5.5.55"},{name:"star-settings",hex:"F166A",version:"5.7.55"},{name:"star-settings-outline",hex:"F166B",version:"5.7.55"},{name:"star-shooting",hex:"F1741",version:"5.9.55"},{name:"star-shooting-outline",hex:"F1742",version:"5.9.55"},{name:"star-three-points",hex:"F0AE4",version:"2.7.94"},{name:"star-three-points-outline",hex:"F0AE5",version:"2.7.94"},{name:"state-machine",hex:"F11EF",version:"4.5.95"},{name:"steam",hex:"F04D3",version:"1.5.54"},{name:"steering",hex:"F04D4",version:"1.5.54"},{name:"steering-off",hex:"F090E",version:"2.3.50"},{name:"step-backward",hex:"F04D5",version:"1.5.54"},{name:"step-backward-2",hex:"F04D6",version:"1.5.54"},{name:"step-forward",hex:"F04D7",version:"1.5.54"},{name:"step-forward-2",hex:"F04D8",version:"1.5.54"},{name:"stethoscope",hex:"F04D9",version:"1.5.54"},{name:"sticker",hex:"F1364",version:"4.9.95"},{name:"sticker-alert",hex:"F1365",version:"4.9.95"},{name:"sticker-alert-outline",hex:"F1366",version:"4.9.95"},{name:"sticker-check",hex:"F1367",version:"4.9.95"},{name:"sticker-check-outline",hex:"F1368",version:"4.9.95"},{name:"sticker-circle-outline",hex:"F05D0",version:"1.5.54"},{name:"sticker-emoji",hex:"F0785",version:"1.9.32"},{name:"sticker-minus",hex:"F1369",version:"4.9.95"},{name:"sticker-minus-outline",hex:"F136A",version:"4.9.95"},{name:"sticker-outline",hex:"F136B",version:"4.9.95"},{name:"sticker-plus",hex:"F136C",version:"4.9.95"},{name:"sticker-plus-outline",hex:"F136D",version:"4.9.95"},{name:"sticker-remove",hex:"F136E",version:"4.9.95"},{name:"sticker-remove-outline",hex:"F136F",version:"4.9.95"},{name:"sticker-text",hex:"F178E",version:"6.1.95"},{name:"sticker-text-outline",hex:"F178F",version:"6.1.95"},{name:"stocking",hex:"F04DA",version:"1.5.54"},{name:"stomach",hex:"F1093",version:"4.2.95"},{name:"stool",hex:"F195D",version:"6.4.95"},{name:"stool-outline",hex:"F195E",version:"6.4.95"},{name:"stop",hex:"F04DB",version:"1.5.54"},{name:"stop-circle",hex:"F0666",version:"1.6.50"},{name:"stop-circle-outline",hex:"F0667",version:"1.6.50"},{name:"store",hex:"F04DC",version:"1.5.54"},{name:"store-24-hour",hex:"F04DD",version:"1.5.54"},{name:"store-alert",hex:"F18C1",version:"6.3.95"},{name:"store-alert-outline",hex:"F18C2",version:"6.3.95"},{name:"store-check",hex:"F18C3",version:"6.3.95"},{name:"store-check-outline",hex:"F18C4",version:"6.3.95"},{name:"store-clock",hex:"F18C5",version:"6.3.95"},{name:"store-clock-outline",hex:"F18C6",version:"6.3.95"},{name:"store-cog",hex:"F18C7",version:"6.3.95"},{name:"store-cog-outline",hex:"F18C8",version:"6.3.95"},{name:"store-edit",hex:"F18C9",version:"6.3.95"},{name:"store-edit-outline",hex:"F18CA",version:"6.3.95"},{name:"store-marker",hex:"F18CB",version:"6.3.95"},{name:"store-marker-outline",hex:"F18CC",version:"6.3.95"},{name:"store-minus",hex:"F165E",version:"5.7.55"},{name:"store-minus-outline",hex:"F18CD",version:"6.3.95"},{name:"store-off",hex:"F18CE",version:"6.3.95"},{name:"store-off-outline",hex:"F18CF",version:"6.3.95"},{name:"store-outline",hex:"F1361",version:"4.9.95"},{name:"store-plus",hex:"F165F",version:"5.7.55"},{name:"store-plus-outline",hex:"F18D0",version:"6.3.95"},{name:"store-remove",hex:"F1660",version:"5.7.55"},{name:"store-remove-outline",hex:"F18D1",version:"6.3.95"},{name:"store-search",hex:"F18D2",version:"6.3.95"},{name:"store-search-outline",hex:"F18D3",version:"6.3.95"},{name:"store-settings",hex:"F18D4",version:"6.3.95"},{name:"store-settings-outline",hex:"F18D5",version:"6.3.95"},{name:"storefront",hex:"F07C7",version:"2.0.46"},{name:"storefront-outline",hex:"F10C1",version:"4.2.95"},{name:"stove",hex:"F04DE",version:"1.5.54"},{name:"strategy",hex:"F11D6",version:"4.5.95"},{name:"stretch-to-page",hex:"F0F2B",version:"3.8.95"},{name:"stretch-to-page-outline",hex:"F0F2C",version:"3.8.95"},{name:"string-lights",hex:"F12BA",version:"4.7.95"},{name:"string-lights-off",hex:"F12BB",version:"4.7.95"},{name:"subdirectory-arrow-left",hex:"F060C",version:"1.5.54"},{name:"subdirectory-arrow-right",hex:"F060D",version:"1.5.54"},{name:"submarine",hex:"F156C",version:"5.5.55"},{name:"subtitles",hex:"F0A16",version:"2.5.94"},{name:"subtitles-outline",hex:"F0A17",version:"2.5.94"},{name:"subway",hex:"F06AC",version:"1.7.12"},{name:"subway-alert-variant",hex:"F0D9D",version:"3.4.93"},{name:"subway-variant",hex:"F04DF",version:"1.5.54"},{name:"summit",hex:"F0786",version:"1.9.32"},{name:"sun-compass",hex:"F19A5",version:"6.5.95"},{name:"sun-snowflake",hex:"F1796",version:"6.1.95"},{name:"sun-thermometer",hex:"F18D6",version:"6.3.95"},{name:"sun-thermometer-outline",hex:"F18D7",version:"6.3.95"},{name:"sun-wireless",hex:"F17FE",version:"6.1.95"},{name:"sun-wireless-outline",hex:"F17FF",version:"6.1.95"},{name:"sunglasses",hex:"F04E0",version:"1.5.54"},{name:"surfing",hex:"F1746",version:"6.1.95"},{name:"surround-sound",hex:"F05C5",version:"1.5.54"},{name:"surround-sound-2-0",hex:"F07F0",version:"2.0.46"},{name:"surround-sound-2-1",hex:"F1729",version:"5.9.55"},{name:"surround-sound-3-1",hex:"F07F1",version:"2.0.46"},{name:"surround-sound-5-1",hex:"F07F2",version:"2.0.46"},{name:"surround-sound-5-1-2",hex:"F172A",version:"5.9.55"},{name:"surround-sound-7-1",hex:"F07F3",version:"2.0.46"},{name:"svg",hex:"F0721",version:"1.8.36"},{name:"swap-horizontal",hex:"F04E1",version:"1.5.54"},{name:"swap-horizontal-bold",hex:"F0BCD",version:"3.0.39"},{name:"swap-horizontal-circle",hex:"F0FE1",version:"4.0.96"},{name:"swap-horizontal-circle-outline",hex:"F0FE2",version:"4.0.96"},{name:"swap-horizontal-variant",hex:"F08C1",version:"2.2.43"},{name:"swap-vertical",hex:"F04E2",version:"1.5.54"},{name:"swap-vertical-bold",hex:"F0BCE",version:"3.0.39"},{name:"swap-vertical-circle",hex:"F0FE3",version:"4.0.96"},{name:"swap-vertical-circle-outline",hex:"F0FE4",version:"4.0.96"},{name:"swap-vertical-variant",hex:"F08C2",version:"2.2.43"},{name:"swim",hex:"F04E3",version:"1.5.54"},{name:"switch",hex:"F04E4",version:"1.5.54"},{name:"sword",hex:"F04E5",version:"1.5.54"},{name:"sword-cross",hex:"F0787",version:"1.9.32"},{name:"syllabary-hangul",hex:"F1333",version:"4.9.95"},{name:"syllabary-hiragana",hex:"F1334",version:"4.9.95"},{name:"syllabary-katakana",hex:"F1335",version:"4.9.95"},{name:"syllabary-katakana-halfwidth",hex:"F1336",version:"4.9.95"},{name:"symbol",hex:"F1501",version:"5.4.55"},{name:"symfony",hex:"F0AE6",version:"2.7.94"},{name:"sync",hex:"F04E6",version:"1.5.54"},{name:"sync-alert",hex:"F04E7",version:"1.5.54"},{name:"sync-circle",hex:"F1378",version:"4.9.95"},{name:"sync-off",hex:"F04E8",version:"1.5.54"},{name:"tab",hex:"F04E9",version:"1.5.54"},{name:"tab-minus",hex:"F0B4B",version:"2.8.94"},{name:"tab-plus",hex:"F075C",version:"1.9.32"},{name:"tab-remove",hex:"F0B4C",version:"2.8.94"},{name:"tab-search",hex:"F199E",version:"6.5.95"},{name:"tab-unselected",hex:"F04EA",version:"1.5.54"},{name:"table",hex:"F04EB",version:"1.5.54"},{name:"table-account",hex:"F13B9",version:"5.1.45"},{name:"table-alert",hex:"F13BA",version:"5.1.45"},{name:"table-arrow-down",hex:"F13BB",version:"5.1.45"},{name:"table-arrow-left",hex:"F13BC",version:"5.1.45"},{name:"table-arrow-right",hex:"F13BD",version:"5.1.45"},{name:"table-arrow-up",hex:"F13BE",version:"5.1.45"},{name:"table-border",hex:"F0A18",version:"2.5.94"},{name:"table-cancel",hex:"F13BF",version:"5.1.45"},{name:"table-chair",hex:"F1061",version:"4.1.95"},{name:"table-check",hex:"F13C0",version:"5.1.45"},{name:"table-clock",hex:"F13C1",version:"5.1.45"},{name:"table-cog",hex:"F13C2",version:"5.1.45"},{name:"table-column",hex:"F0835",version:"2.1.19"},{name:"table-column-plus-after",hex:"F04EC",version:"1.5.54"},{name:"table-column-plus-before",hex:"F04ED",version:"1.5.54"},{name:"table-column-remove",hex:"F04EE",version:"1.5.54"},{name:"table-column-width",hex:"F04EF",version:"1.5.54"},{name:"table-edit",hex:"F04F0",version:"1.5.54"},{name:"table-eye",hex:"F1094",version:"4.2.95"},{name:"table-eye-off",hex:"F13C3",version:"5.1.45"},{name:"table-furniture",hex:"F05BC",version:"1.5.54"},{name:"table-headers-eye",hex:"F121D",version:"4.6.95"},{name:"table-headers-eye-off",hex:"F121E",version:"4.6.95"},{name:"table-heart",hex:"F13C4",version:"5.1.45"},{name:"table-key",hex:"F13C5",version:"5.1.45"},{name:"table-large",hex:"F04F1",version:"1.5.54"},{name:"table-large-plus",hex:"F0F87",version:"3.9.97"},{name:"table-large-remove",hex:"F0F88",version:"3.9.97"},{name:"table-lock",hex:"F13C6",version:"5.1.45"},{name:"table-merge-cells",hex:"F09A6",version:"2.4.85"},{name:"table-minus",hex:"F13C7",version:"5.1.45"},{name:"table-multiple",hex:"F13C8",version:"5.1.45"},{name:"table-network",hex:"F13C9",version:"5.1.45"},{name:"table-of-contents",hex:"F0836",version:"2.1.19"},{name:"table-off",hex:"F13CA",version:"5.1.45"},{name:"table-picnic",hex:"F1743",version:"5.9.55"},{name:"table-pivot",hex:"F183C",version:"6.2.95"},{name:"table-plus",hex:"F0A75",version:"2.6.95"},{name:"table-refresh",hex:"F13A0",version:"5.0.45"},{name:"table-remove",hex:"F0A76",version:"2.6.95"},{name:"table-row",hex:"F0837",version:"2.1.19"},{name:"table-row-height",hex:"F04F2",version:"1.5.54"},{name:"table-row-plus-after",hex:"F04F3",version:"1.5.54"},{name:"table-row-plus-before",hex:"F04F4",version:"1.5.54"},{name:"table-row-remove",hex:"F04F5",version:"1.5.54"},{name:"table-search",hex:"F090F",version:"2.3.50"},{name:"table-settings",hex:"F0838",version:"2.1.19"},{name:"table-split-cell",hex:"F142A",version:"5.2.45"},{name:"table-star",hex:"F13CB",version:"5.1.45"},{name:"table-sync",hex:"F13A1",version:"5.0.45"},{name:"table-tennis",hex:"F0E68",version:"3.6.95"},{name:"tablet",hex:"F04F6",version:"1.5.54"},{name:"tablet-android",hex:"F04F7",version:"1.5.54"},{name:"tablet-cellphone",hex:"F09A7",version:"2.4.85"},{name:"tablet-dashboard",hex:"F0ECE",version:"3.7.94"},{name:"taco",hex:"F0762",version:"1.9.32"},{name:"tag",hex:"F04F9",version:"1.5.54"},{name:"tag-arrow-down",hex:"F172B",version:"5.9.55"},{name:"tag-arrow-down-outline",hex:"F172C",version:"5.9.55"},{name:"tag-arrow-left",hex:"F172D",version:"5.9.55"},{name:"tag-arrow-left-outline",hex:"F172E",version:"5.9.55"},{name:"tag-arrow-right",hex:"F172F",version:"5.9.55"},{name:"tag-arrow-right-outline",hex:"F1730",version:"5.9.55"},{name:"tag-arrow-up",hex:"F1731",version:"5.9.55"},{name:"tag-arrow-up-outline",hex:"F1732",version:"5.9.55"},{name:"tag-faces",hex:"F04FA",version:"1.5.54"},{name:"tag-heart",hex:"F068B",version:"1.7.12"},{name:"tag-heart-outline",hex:"F0BCF",version:"3.0.39"},{name:"tag-minus",hex:"F0910",version:"2.3.50"},{name:"tag-minus-outline",hex:"F121F",version:"4.6.95"},{name:"tag-multiple",hex:"F04FB",version:"1.5.54"},{name:"tag-multiple-outline",hex:"F12F7",version:"4.8.95"},{name:"tag-off",hex:"F1220",version:"4.6.95"},{name:"tag-off-outline",hex:"F1221",version:"4.6.95"},{name:"tag-outline",hex:"F04FC",version:"1.5.54"},{name:"tag-plus",hex:"F0722",version:"1.8.36"},{name:"tag-plus-outline",hex:"F1222",version:"4.6.95"},{name:"tag-remove",hex:"F0723",version:"1.8.36"},{name:"tag-remove-outline",hex:"F1223",version:"4.6.95"},{name:"tag-search",hex:"F1907",version:"6.4.95"},{name:"tag-search-outline",hex:"F1908",version:"6.4.95"},{name:"tag-text",hex:"F1224",version:"4.6.95"},{name:"tag-text-outline",hex:"F04FD",version:"1.5.54"},{name:"tailwind",hex:"F13FF",version:"5.1.45"},{name:"tangram",hex:"F04F8",version:"1.5.54"},{name:"tank",hex:"F0D3A",version:"3.3.92"},{name:"tanker-truck",hex:"F0FE5",version:"4.0.96"},{name:"tape-drive",hex:"F16DF",version:"5.8.55"},{name:"tape-measure",hex:"F0B4D",version:"2.8.94"},{name:"target",hex:"F04FE",version:"1.5.54"},{name:"target-account",hex:"F0BD0",version:"3.0.39"},{name:"target-variant",hex:"F0A77",version:"2.6.95"},{name:"taxi",hex:"F04FF",version:"1.5.54"},{name:"tea",hex:"F0D9E",version:"3.4.93"},{name:"tea-outline",hex:"F0D9F",version:"3.4.93"},{name:"teamviewer",hex:"F0500",version:"1.5.54"},{name:"teddy-bear",hex:"F18FB",version:"6.3.95"},{name:"telescope",hex:"F0B4E",version:"2.8.94"},{name:"television",hex:"F0502",version:"1.5.54"},{name:"television-ambient-light",hex:"F1356",version:"4.9.95"},{name:"television-box",hex:"F0839",version:"2.1.19"},{name:"television-classic",hex:"F07F4",version:"2.0.46"},{name:"television-classic-off",hex:"F083A",version:"2.1.19"},{name:"television-guide",hex:"F0503",version:"1.5.54"},{name:"television-off",hex:"F083B",version:"2.1.19"},{name:"television-pause",hex:"F0F89",version:"3.9.97"},{name:"television-play",hex:"F0ECF",version:"3.7.94"},{name:"television-shimmer",hex:"F1110",version:"4.3.95"},{name:"television-stop",hex:"F0F8A",version:"3.9.97"},{name:"temperature-celsius",hex:"F0504",version:"1.5.54"},{name:"temperature-fahrenheit",hex:"F0505",version:"1.5.54"},{name:"temperature-kelvin",hex:"F0506",version:"1.5.54"},{name:"tennis",hex:"F0DA0",version:"3.4.93"},{name:"tennis-ball",hex:"F0507",version:"1.5.54"},{name:"tent",hex:"F0508",version:"1.5.54"},{name:"terraform",hex:"F1062",version:"4.1.95"},{name:"terrain",hex:"F0509",version:"1.5.54"},{name:"test-tube",hex:"F0668",version:"1.6.50"},{name:"test-tube-empty",hex:"F0911",version:"2.3.50"},{name:"test-tube-off",hex:"F0912",version:"2.3.50"},{name:"text",hex:"F09A8",version:"2.4.85"},{name:"text-account",hex:"F1570",version:"5.5.55"},{name:"text-box",hex:"F021A",version:"1.5.54"},{name:"text-box-check",hex:"F0EA6",version:"3.7.94"},{name:"text-box-check-outline",hex:"F0EA7",version:"3.7.94"},{name:"text-box-minus",hex:"F0EA8",version:"3.7.94"},{name:"text-box-minus-outline",hex:"F0EA9",version:"3.7.94"},{name:"text-box-multiple",hex:"F0AB7",version:"2.7.94"},{name:"text-box-multiple-outline",hex:"F0AB8",version:"2.7.94"},{name:"text-box-outline",hex:"F09ED",version:"2.5.94"},{name:"text-box-plus",hex:"F0EAA",version:"3.7.94"},{name:"text-box-plus-outline",hex:"F0EAB",version:"3.7.94"},{name:"text-box-remove",hex:"F0EAC",version:"3.7.94"},{name:"text-box-remove-outline",hex:"F0EAD",version:"3.7.94"},{name:"text-box-search",hex:"F0EAE",version:"3.7.94"},{name:"text-box-search-outline",hex:"F0EAF",version:"3.7.94"},{name:"text-long",hex:"F09AA",version:"2.4.85"},{name:"text-recognition",hex:"F113D",version:"4.4.95"},{name:"text-search",hex:"F13B8",version:"5.1.45"},{name:"text-shadow",hex:"F0669",version:"1.6.50"},{name:"text-short",hex:"F09A9",version:"2.4.85"},{name:"text-to-speech",hex:"F050A",version:"1.5.54"},{name:"text-to-speech-off",hex:"F050B",version:"1.5.54"},{name:"texture",hex:"F050C",version:"1.5.54"},{name:"texture-box",hex:"F0FE6",version:"4.0.96"},{name:"theater",hex:"F050D",version:"1.5.54"},{name:"theme-light-dark",hex:"F050E",version:"1.5.54"},{name:"thermometer",hex:"F050F",version:"1.5.54"},{name:"thermometer-alert",hex:"F0E01",version:"3.5.94"},{name:"thermometer-bluetooth",hex:"F1895",version:"6.2.95"},{name:"thermometer-chevron-down",hex:"F0E02",version:"3.5.94"},{name:"thermometer-chevron-up",hex:"F0E03",version:"3.5.94"},{name:"thermometer-high",hex:"F10C2",version:"4.2.95"},{name:"thermometer-lines",hex:"F0510",version:"1.5.54"},{name:"thermometer-low",hex:"F10C3",version:"4.2.95"},{name:"thermometer-minus",hex:"F0E04",version:"3.5.94"},{name:"thermometer-off",hex:"F1531",version:"5.4.55"},{name:"thermometer-plus",hex:"F0E05",version:"3.5.94"},{name:"thermostat",hex:"F0393",version:"1.5.54"},{name:"thermostat-box",hex:"F0891",version:"2.1.99"},{name:"thought-bubble",hex:"F07F6",version:"2.0.46"},{name:"thought-bubble-outline",hex:"F07F7",version:"2.0.46"},{name:"thumb-down",hex:"F0511",version:"1.5.54"},{name:"thumb-down-outline",hex:"F0512",version:"1.5.54"},{name:"thumb-up",hex:"F0513",version:"1.5.54"},{name:"thumb-up-outline",hex:"F0514",version:"1.5.54"},{name:"thumbs-up-down",hex:"F0515",version:"1.5.54"},{name:"thumbs-up-down-outline",hex:"F1914",version:"6.4.95"},{name:"ticket",hex:"F0516",version:"1.5.54"},{name:"ticket-account",hex:"F0517",version:"1.5.54"},{name:"ticket-confirmation",hex:"F0518",version:"1.5.54"},{name:"ticket-confirmation-outline",hex:"F13AA",version:"5.0.45"},{name:"ticket-outline",hex:"F0913",version:"2.3.50"},{name:"ticket-percent",hex:"F0724",version:"1.8.36"},{name:"ticket-percent-outline",hex:"F142B",version:"5.2.45"},{name:"tie",hex:"F0519",version:"1.5.54"},{name:"tilde",hex:"F0725",version:"1.8.36"},{name:"tilde-off",hex:"F18F3",version:"6.3.95"},{name:"timelapse",hex:"F051A",version:"1.5.54"},{name:"timeline",hex:"F0BD1",version:"3.0.39"},{name:"timeline-alert",hex:"F0F95",version:"3.9.97"},{name:"timeline-alert-outline",hex:"F0F98",version:"3.9.97"},{name:"timeline-check",hex:"F1532",version:"5.4.55"},{name:"timeline-check-outline",hex:"F1533",version:"5.4.55"},{name:"timeline-clock",hex:"F11FB",version:"4.6.95"},{name:"timeline-clock-outline",hex:"F11FC",version:"4.6.95"},{name:"timeline-help",hex:"F0F99",version:"3.9.97"},{name:"timeline-help-outline",hex:"F0F9A",version:"3.9.97"},{name:"timeline-minus",hex:"F1534",version:"5.4.55"},{name:"timeline-minus-outline",hex:"F1535",version:"5.4.55"},{name:"timeline-outline",hex:"F0BD2",version:"3.0.39"},{name:"timeline-plus",hex:"F0F96",version:"3.9.97"},{name:"timeline-plus-outline",hex:"F0F97",version:"3.9.97"},{name:"timeline-remove",hex:"F1536",version:"5.4.55"},{name:"timeline-remove-outline",hex:"F1537",version:"5.4.55"},{name:"timeline-text",hex:"F0BD3",version:"3.0.39"},{name:"timeline-text-outline",hex:"F0BD4",version:"3.0.39"},{name:"timer",hex:"F13AB",version:"5.0.45"},{name:"timer-10",hex:"F051C",version:"1.5.54"},{name:"timer-3",hex:"F051D",version:"1.5.54"},{name:"timer-cog",hex:"F1925",version:"6.4.95"},{name:"timer-cog-outline",hex:"F1926",version:"6.4.95"},{name:"timer-off",hex:"F13AC",version:"5.0.45"},{name:"timer-off-outline",hex:"F051E",version:"1.5.54"},{name:"timer-outline",hex:"F051B",version:"1.5.54"},{name:"timer-sand",hex:"F051F",version:"1.5.54"},{name:"timer-sand-complete",hex:"F199F",version:"6.5.95"},{name:"timer-sand-empty",hex:"F06AD",version:"1.7.12"},{name:"timer-sand-full",hex:"F078C",version:"1.9.32"},{name:"timer-sand-paused",hex:"F19A0",version:"6.5.95"},{name:"timer-settings",hex:"F1923",version:"6.4.95"},{name:"timer-settings-outline",hex:"F1924",version:"6.4.95"},{name:"timetable",hex:"F0520",version:"1.5.54"},{name:"tire",hex:"F1896",version:"6.2.95"},{name:"toaster",hex:"F1063",version:"4.1.95"},{name:"toaster-off",hex:"F11B7",version:"4.5.95"},{name:"toaster-oven",hex:"F0CD3",version:"3.2.89"},{name:"toggle-switch",hex:"F0521",version:"1.5.54"},{name:"toggle-switch-off",hex:"F0522",version:"1.5.54"},{name:"toggle-switch-off-outline",hex:"F0A19",version:"2.5.94"},{name:"toggle-switch-outline",hex:"F0A1A",version:"2.5.94"},{name:"toilet",hex:"F09AB",version:"2.4.85"},{name:"toolbox",hex:"F09AC",version:"2.4.85"},{name:"toolbox-outline",hex:"F09AD",version:"2.4.85"},{name:"tools",hex:"F1064",version:"4.1.95"},{name:"tooltip",hex:"F0523",version:"1.5.54"},{name:"tooltip-account",hex:"F000C",version:"1.5.54"},{name:"tooltip-cellphone",hex:"F183B",version:"6.2.95"},{name:"tooltip-check",hex:"F155C",version:"5.5.55"},{name:"tooltip-check-outline",hex:"F155D",version:"5.5.55"},{name:"tooltip-edit",hex:"F0524",version:"1.5.54"},{name:"tooltip-edit-outline",hex:"F12C5",version:"4.8.95"},{name:"tooltip-image",hex:"F0525",version:"1.5.54"},{name:"tooltip-image-outline",hex:"F0BD5",version:"3.0.39"},{name:"tooltip-minus",hex:"F155E",version:"5.5.55"},{name:"tooltip-minus-outline",hex:"F155F",version:"5.5.55"},{name:"tooltip-outline",hex:"F0526",version:"1.5.54"},{name:"tooltip-plus",hex:"F0BD6",version:"3.0.39"},{name:"tooltip-plus-outline",hex:"F0527",version:"1.5.54"},{name:"tooltip-remove",hex:"F1560",version:"5.5.55"},{name:"tooltip-remove-outline",hex:"F1561",version:"5.5.55"},{name:"tooltip-text",hex:"F0528",version:"1.5.54"},{name:"tooltip-text-outline",hex:"F0BD7",version:"3.0.39"},{name:"tooth",hex:"F08C3",version:"2.2.43"},{name:"tooth-outline",hex:"F0529",version:"1.5.54"},{name:"toothbrush",hex:"F1129",version:"4.3.95"},{name:"toothbrush-electric",hex:"F112C",version:"4.4.95"},{name:"toothbrush-paste",hex:"F112A",version:"4.3.95"},{name:"torch",hex:"F1606",version:"5.6.55"},{name:"tortoise",hex:"F0D3B",version:"3.3.92"},{name:"toslink",hex:"F12B8",version:"4.7.95"},{name:"tournament",hex:"F09AE",version:"2.4.85"},{name:"tow-truck",hex:"F083C",version:"2.1.19"},{name:"tower-beach",hex:"F0681",version:"1.7.12"},{name:"tower-fire",hex:"F0682",version:"1.7.12"},{name:"town-hall",hex:"F1875",version:"6.2.95"},{name:"toy-brick",hex:"F1288",version:"4.7.95"},{name:"toy-brick-marker",hex:"F1289",version:"4.7.95"},{name:"toy-brick-marker-outline",hex:"F128A",version:"4.7.95"},{name:"toy-brick-minus",hex:"F128B",version:"4.7.95"},{name:"toy-brick-minus-outline",hex:"F128C",version:"4.7.95"},{name:"toy-brick-outline",hex:"F128D",version:"4.7.95"},{name:"toy-brick-plus",hex:"F128E",version:"4.7.95"},{name:"toy-brick-plus-outline",hex:"F128F",version:"4.7.95"},{name:"toy-brick-remove",hex:"F1290",version:"4.7.95"},{name:"toy-brick-remove-outline",hex:"F1291",version:"4.7.95"},{name:"toy-brick-search",hex:"F1292",version:"4.7.95"},{name:"toy-brick-search-outline",hex:"F1293",version:"4.7.95"},{name:"track-light",hex:"F0914",version:"2.3.50"},{name:"trackpad",hex:"F07F8",version:"2.0.46"},{name:"trackpad-lock",hex:"F0933",version:"2.3.54"},{name:"tractor",hex:"F0892",version:"2.1.99"},{name:"tractor-variant",hex:"F14C4",version:"5.3.45"},{name:"trademark",hex:"F0A78",version:"2.6.95"},{name:"traffic-cone",hex:"F137C",version:"4.9.95"},{name:"traffic-light",hex:"F052B",version:"1.5.54"},{name:"traffic-light-outline",hex:"F182A",version:"6.1.95"},{name:"train",hex:"F052C",version:"1.5.54"},{name:"train-car",hex:"F0BD8",version:"3.0.39"},{name:"train-car-passenger",hex:"F1733",version:"5.9.55"},{name:"train-car-passenger-door",hex:"F1734",version:"5.9.55"},{name:"train-car-passenger-door-open",hex:"F1735",version:"5.9.55"},{name:"train-car-passenger-variant",hex:"F1736",version:"5.9.55"},{name:"train-variant",hex:"F08C4",version:"2.2.43"},{name:"tram",hex:"F052D",version:"1.5.54"},{name:"tram-side",hex:"F0FE7",version:"4.0.96"},{name:"transcribe",hex:"F052E",version:"1.5.54"},{name:"transcribe-close",hex:"F052F",version:"1.5.54"},{name:"transfer",hex:"F1065",version:"4.1.95"},{name:"transfer-down",hex:"F0DA1",version:"3.4.93"},{name:"transfer-left",hex:"F0DA2",version:"3.4.93"},{name:"transfer-right",hex:"F0530",version:"1.5.54"},{name:"transfer-up",hex:"F0DA3",version:"3.4.93"},{name:"transit-connection",hex:"F0D3C",version:"3.3.92"},{name:"transit-connection-horizontal",hex:"F1546",version:"5.4.55"},{name:"transit-connection-variant",hex:"F0D3D",version:"3.3.92"},{name:"transit-detour",hex:"F0F8B",version:"3.9.97"},{name:"transit-skip",hex:"F1515",version:"5.4.55"},{name:"transit-transfer",hex:"F06AE",version:"1.7.12"},{name:"transition",hex:"F0915",version:"2.3.50"},{name:"transition-masked",hex:"F0916",version:"2.3.50"},{name:"translate",hex:"F05CA",version:"1.5.54"},{name:"translate-off",hex:"F0E06",version:"3.5.94"},{name:"transmission-tower",hex:"F0D3E",version:"3.3.92"},{name:"transmission-tower-export",hex:"F192C",version:"6.4.95"},{name:"transmission-tower-import",hex:"F192D",version:"6.4.95"},{name:"trash-can",hex:"F0A79",version:"2.6.95"},{name:"trash-can-outline",hex:"F0A7A",version:"2.6.95"},{name:"tray",hex:"F1294",version:"4.7.95"},{name:"tray-alert",hex:"F1295",version:"4.7.95"},{name:"tray-arrow-down",hex:"F0120",version:"1.5.54"},{name:"tray-arrow-up",hex:"F011D",version:"1.5.54"},{name:"tray-full",hex:"F1296",version:"4.7.95"},{name:"tray-minus",hex:"F1297",version:"4.7.95"},{name:"tray-plus",hex:"F1298",version:"4.7.95"},{name:"tray-remove",hex:"F1299",version:"4.7.95"},{name:"treasure-chest",hex:"F0726",version:"1.8.36"},{name:"tree",hex:"F0531",version:"1.5.54"},{name:"tree-outline",hex:"F0E69",version:"3.6.95"},{name:"trello",hex:"F0532",version:"1.5.54"},{name:"trending-down",hex:"F0533",version:"1.5.54"},{name:"trending-neutral",hex:"F0534",version:"1.5.54"},{name:"trending-up",hex:"F0535",version:"1.5.54"},{name:"triangle",hex:"F0536",version:"1.5.54"},{name:"triangle-outline",hex:"F0537",version:"1.5.54"},{name:"triangle-wave",hex:"F147C",version:"5.2.45"},{name:"triforce",hex:"F0BD9",version:"3.0.39"},{name:"trophy",hex:"F0538",version:"1.5.54"},{name:"trophy-award",hex:"F0539",version:"1.5.54"},{name:"trophy-broken",hex:"F0DA4",version:"3.4.93"},{name:"trophy-outline",hex:"F053A",version:"1.5.54"},{name:"trophy-variant",hex:"F053B",version:"1.5.54"},{name:"trophy-variant-outline",hex:"F053C",version:"1.5.54"},{name:"truck",hex:"F053D",version:"1.5.54"},{name:"truck-cargo-container",hex:"F18D8",version:"6.3.95"},{name:"truck-check",hex:"F0CD4",version:"3.2.89"},{name:"truck-check-outline",hex:"F129A",version:"4.7.95"},{name:"truck-delivery",hex:"F053E",version:"1.5.54"},{name:"truck-delivery-outline",hex:"F129B",version:"4.7.95"},{name:"truck-fast",hex:"F0788",version:"1.9.32"},{name:"truck-fast-outline",hex:"F129C",version:"4.7.95"},{name:"truck-flatbed",hex:"F1891",version:"6.2.95"},{name:"truck-minus",hex:"F19AE",version:"6.5.95"},{name:"truck-minus-outline",hex:"F19BD",version:"6.5.95"},{name:"truck-outline",hex:"F129D",version:"4.7.95"},{name:"truck-plus",hex:"F19AD",version:"6.5.95"},{name:"truck-plus-outline",hex:"F19BC",version:"6.5.95"},{name:"truck-remove",hex:"F19AF",version:"6.5.95"},{name:"truck-remove-outline",hex:"F19BE",version:"6.5.95"},{name:"truck-snowflake",hex:"F19A6",version:"6.5.95"},{name:"truck-trailer",hex:"F0727",version:"1.8.36"},{name:"trumpet",hex:"F1096",version:"4.2.95"},{name:"tshirt-crew",hex:"F0A7B",version:"2.6.95"},{name:"tshirt-crew-outline",hex:"F053F",version:"1.5.54"},{name:"tshirt-v",hex:"F0A7C",version:"2.6.95"},{name:"tshirt-v-outline",hex:"F0540",version:"1.5.54"},{name:"tumble-dryer",hex:"F0917",version:"2.3.50"},{name:"tumble-dryer-alert",hex:"F11BA",version:"4.5.95"},{name:"tumble-dryer-off",hex:"F11BB",version:"4.5.95"},{name:"tune",hex:"F062E",version:"1.6.50"},{name:"tune-variant",hex:"F1542",version:"5.4.55"},{name:"tune-vertical",hex:"F066A",version:"1.6.50"},{name:"tune-vertical-variant",hex:"F1543",version:"5.4.55"},{name:"tunnel",hex:"F183D",version:"6.2.95"},{name:"tunnel-outline",hex:"F183E",version:"6.2.95"},{name:"turkey",hex:"F171B",version:"5.9.55"},{name:"turnstile",hex:"F0CD5",version:"3.2.89"},{name:"turnstile-outline",hex:"F0CD6",version:"3.2.89"},{name:"turtle",hex:"F0CD7",version:"3.2.89"},{name:"twitch",hex:"F0543",version:"1.5.54"},{name:"twitter",hex:"F0544",version:"1.5.54"},{name:"two-factor-authentication",hex:"F09AF",version:"2.4.85"},{name:"typewriter",hex:"F0F2D",version:"3.8.95"},{name:"ubisoft",hex:"F0BDA",version:"3.0.39"},{name:"ubuntu",hex:"F0548",version:"1.5.54"},{name:"ufo",hex:"F10C4",version:"4.2.95"},{name:"ufo-outline",hex:"F10C5",version:"4.2.95"},{name:"ultra-high-definition",hex:"F07F9",version:"2.0.46"},{name:"umbraco",hex:"F0549",version:"1.5.54"},{name:"umbrella",hex:"F054A",version:"1.5.54"},{name:"umbrella-beach",hex:"F188A",version:"6.2.95"},{name:"umbrella-beach-outline",hex:"F188B",version:"6.2.95"},{name:"umbrella-closed",hex:"F09B0",version:"2.4.85"},{name:"umbrella-closed-outline",hex:"F13E2",version:"5.1.45"},{name:"umbrella-closed-variant",hex:"F13E1",version:"5.1.45"},{name:"umbrella-outline",hex:"F054B",version:"1.5.54"},{name:"undo",hex:"F054C",version:"1.5.54"},{name:"undo-variant",hex:"F054D",version:"1.5.54"},{name:"unfold-less-horizontal",hex:"F054E",version:"1.5.54"},{name:"unfold-less-vertical",hex:"F0760",version:"1.9.32"},{name:"unfold-more-horizontal",hex:"F054F",version:"1.5.54"},{name:"unfold-more-vertical",hex:"F0761",version:"1.9.32"},{name:"ungroup",hex:"F0550",version:"1.5.54"},{name:"unicode",hex:"F0ED0",version:"3.7.94"},{name:"unicorn",hex:"F15C2",version:"5.6.55"},{name:"unicorn-variant",hex:"F15C3",version:"5.6.55"},{name:"unicycle",hex:"F15E5",version:"5.6.55"},{name:"unity",hex:"F06AF",version:"1.7.12"},{name:"unreal",hex:"F09B1",version:"2.4.85"},{name:"update",hex:"F06B0",version:"1.7.12"},{name:"upload",hex:"F0552",version:"1.5.54"},{name:"upload-lock",hex:"F1373",version:"4.9.95"},{name:"upload-lock-outline",hex:"F1374",version:"4.9.95"},{name:"upload-multiple",hex:"F083D",version:"2.1.19"},{name:"upload-network",hex:"F06F6",version:"1.8.36"},{name:"upload-network-outline",hex:"F0CD8",version:"3.2.89"},{name:"upload-off",hex:"F10C6",version:"4.2.95"},{name:"upload-off-outline",hex:"F10C7",version:"4.2.95"},{name:"upload-outline",hex:"F0E07",version:"3.5.94"},{name:"usb",hex:"F0553",version:"1.5.54"},{name:"usb-flash-drive",hex:"F129E",version:"4.7.95"},{name:"usb-flash-drive-outline",hex:"F129F",version:"4.7.95"},{name:"usb-port",hex:"F11F0",version:"4.5.95"},{name:"vacuum",hex:"F19A1",version:"6.5.95"},{name:"vacuum-outline",hex:"F19A2",version:"6.5.95"},{name:"valve",hex:"F1066",version:"4.1.95"},{name:"valve-closed",hex:"F1067",version:"4.1.95"},{name:"valve-open",hex:"F1068",version:"4.1.95"},{name:"van-passenger",hex:"F07FA",version:"2.0.46"},{name:"van-utility",hex:"F07FB",version:"2.0.46"},{name:"vanish",hex:"F07FC",version:"2.0.46"},{name:"vanish-quarter",hex:"F1554",version:"5.5.55"},{name:"vanity-light",hex:"F11E1",version:"4.5.95"},{name:"variable",hex:"F0AE7",version:"2.7.94"},{name:"variable-box",hex:"F1111",version:"4.3.95"},{name:"vector-arrange-above",hex:"F0554",version:"1.5.54"},{name:"vector-arrange-below",hex:"F0555",version:"1.5.54"},{name:"vector-bezier",hex:"F0AE8",version:"2.7.94"},{name:"vector-circle",hex:"F0556",version:"1.5.54"},{name:"vector-circle-variant",hex:"F0557",version:"1.5.54"},{name:"vector-combine",hex:"F0558",version:"1.5.54"},{name:"vector-curve",hex:"F0559",version:"1.5.54"},{name:"vector-difference",hex:"F055A",version:"1.5.54"},{name:"vector-difference-ab",hex:"F055B",version:"1.5.54"},{name:"vector-difference-ba",hex:"F055C",version:"1.5.54"},{name:"vector-ellipse",hex:"F0893",version:"2.1.99"},{name:"vector-intersection",hex:"F055D",version:"1.5.54"},{name:"vector-line",hex:"F055E",version:"1.5.54"},{name:"vector-link",hex:"F0FE8",version:"4.0.96"},{name:"vector-point",hex:"F055F",version:"1.5.54"},{name:"vector-polygon",hex:"F0560",version:"1.5.54"},{name:"vector-polygon-variant",hex:"F1856",version:"6.2.95"},{name:"vector-polyline",hex:"F0561",version:"1.5.54"},{name:"vector-polyline-edit",hex:"F1225",version:"4.6.95"},{name:"vector-polyline-minus",hex:"F1226",version:"4.6.95"},{name:"vector-polyline-plus",hex:"F1227",version:"4.6.95"},{name:"vector-polyline-remove",hex:"F1228",version:"4.6.95"},{name:"vector-radius",hex:"F074A",version:"1.9.32"},{name:"vector-rectangle",hex:"F05C6",version:"1.5.54"},{name:"vector-selection",hex:"F0562",version:"1.5.54"},{name:"vector-square",hex:"F0001",version:"1.5.54"},{name:"vector-square-close",hex:"F1857",version:"6.2.95"},{name:"vector-square-edit",hex:"F18D9",version:"6.3.95"},{name:"vector-square-minus",hex:"F18DA",version:"6.3.95"},{name:"vector-square-open",hex:"F1858",version:"6.2.95"},{name:"vector-square-plus",hex:"F18DB",version:"6.3.95"},{name:"vector-square-remove",hex:"F18DC",version:"6.3.95"},{name:"vector-triangle",hex:"F0563",version:"1.5.54"},{name:"vector-union",hex:"F0564",version:"1.5.54"},{name:"vhs",hex:"F0A1B",version:"2.5.94"},{name:"vibrate",hex:"F0566",version:"1.5.54"},{name:"vibrate-off",hex:"F0CD9",version:"3.2.89"},{name:"video",hex:"F0567",version:"1.5.54"},{name:"video-3d",hex:"F07FD",version:"2.0.46"},{name:"video-3d-off",hex:"F13D9",version:"5.1.45"},{name:"video-3d-variant",hex:"F0ED1",version:"3.7.94"},{name:"video-4k-box",hex:"F083E",version:"2.1.19"},{name:"video-account",hex:"F0919",version:"2.3.50"},{name:"video-box",hex:"F00FD",version:"1.5.54"},{name:"video-box-off",hex:"F00FE",version:"1.5.54"},{name:"video-check",hex:"F1069",version:"4.1.95"},{name:"video-check-outline",hex:"F106A",version:"4.1.95"},{name:"video-high-definition",hex:"F152E",version:"5.4.55"},{name:"video-image",hex:"F091A",version:"2.3.50"},{name:"video-input-antenna",hex:"F083F",version:"2.1.19"},{name:"video-input-component",hex:"F0840",version:"2.1.19"},{name:"video-input-hdmi",hex:"F0841",version:"2.1.19"},{name:"video-input-scart",hex:"F0F8C",version:"3.9.97"},{name:"video-input-svideo",hex:"F0842",version:"2.1.19"},{name:"video-marker",hex:"F19A9",version:"6.5.95"},{name:"video-marker-outline",hex:"F19AA",version:"6.5.95"},{name:"video-minus",hex:"F09B2",version:"2.4.85"},{name:"video-minus-outline",hex:"F02BA",version:"1.5.54"},{name:"video-off",hex:"F0568",version:"1.5.54"},{name:"video-off-outline",hex:"F0BDB",version:"3.0.39"},{name:"video-outline",hex:"F0BDC",version:"3.0.39"},{name:"video-plus",hex:"F09B3",version:"2.4.85"},{name:"video-plus-outline",hex:"F01D3",version:"1.5.54"},{name:"video-stabilization",hex:"F091B",version:"2.3.50"},{name:"video-switch",hex:"F0569",version:"1.5.54"},{name:"video-switch-outline",hex:"F0790",version:"2.0.46"},{name:"video-vintage",hex:"F0A1C",version:"2.5.94"},{name:"video-wireless",hex:"F0ED2",version:"3.7.94"},{name:"video-wireless-outline",hex:"F0ED3",version:"3.7.94"},{name:"view-agenda",hex:"F056A",version:"1.5.54"},{name:"view-agenda-outline",hex:"F11D8",version:"4.5.95"},{name:"view-array",hex:"F056B",version:"1.5.54"},{name:"view-array-outline",hex:"F1485",version:"5.3.45"},{name:"view-carousel",hex:"F056C",version:"1.5.54"},{name:"view-carousel-outline",hex:"F1486",version:"5.3.45"},{name:"view-column",hex:"F056D",version:"1.5.54"},{name:"view-column-outline",hex:"F1487",version:"5.3.45"},{name:"view-comfy",hex:"F0E6A",version:"3.6.95"},{name:"view-comfy-outline",hex:"F1488",version:"5.3.45"},{name:"view-compact",hex:"F0E6B",version:"3.6.95"},{name:"view-compact-outline",hex:"F0E6C",version:"3.6.95"},{name:"view-dashboard",hex:"F056E",version:"1.5.54"},{name:"view-dashboard-edit",hex:"F1947",version:"6.4.95"},{name:"view-dashboard-edit-outline",hex:"F1948",version:"6.4.95"},{name:"view-dashboard-outline",hex:"F0A1D",version:"2.5.94"},{name:"view-dashboard-variant",hex:"F0843",version:"2.1.19"},{name:"view-dashboard-variant-outline",hex:"F1489",version:"5.3.45"},{name:"view-day",hex:"F056F",version:"1.5.54"},{name:"view-day-outline",hex:"F148A",version:"5.3.45"},{name:"view-gallery",hex:"F1888",version:"6.2.95"},{name:"view-gallery-outline",hex:"F1889",version:"6.2.95"},{name:"view-grid",hex:"F0570",version:"1.5.54"},{name:"view-grid-outline",hex:"F11D9",version:"4.5.95"},{name:"view-grid-plus",hex:"F0F8D",version:"3.9.97"},{name:"view-grid-plus-outline",hex:"F11DA",version:"4.5.95"},{name:"view-headline",hex:"F0571",version:"1.5.54"},{name:"view-list",hex:"F0572",version:"1.5.54"},{name:"view-list-outline",hex:"F148B",version:"5.3.45"},{name:"view-module",hex:"F0573",version:"1.5.54"},{name:"view-module-outline",hex:"F148C",version:"5.3.45"},{name:"view-parallel",hex:"F0728",version:"1.8.36"},{name:"view-parallel-outline",hex:"F148D",version:"5.3.45"},{name:"view-quilt",hex:"F0574",version:"1.5.54"},{name:"view-quilt-outline",hex:"F148E",version:"5.3.45"},{name:"view-sequential",hex:"F0729",version:"1.8.36"},{name:"view-sequential-outline",hex:"F148F",version:"5.3.45"},{name:"view-split-horizontal",hex:"F0BCB",version:"3.0.39"},{name:"view-split-vertical",hex:"F0BCC",version:"3.0.39"},{name:"view-stream",hex:"F0575",version:"1.5.54"},{name:"view-stream-outline",hex:"F1490",version:"5.3.45"},{name:"view-week",hex:"F0576",version:"1.5.54"},{name:"view-week-outline",hex:"F1491",version:"5.3.45"},{name:"vimeo",hex:"F0577",version:"1.5.54"},{name:"violin",hex:"F060F",version:"1.5.54"},{name:"virtual-reality",hex:"F0894",version:"2.1.99"},{name:"virus",hex:"F13B6",version:"5.1.45"},{name:"virus-off",hex:"F18E1",version:"6.3.95"},{name:"virus-off-outline",hex:"F18E2",version:"6.3.95"},{name:"virus-outline",hex:"F13B7",version:"5.1.45"},{name:"vlc",hex:"F057C",version:"1.5.54"},{name:"voicemail",hex:"F057D",version:"1.5.54"},{name:"volleyball",hex:"F09B4",version:"2.4.85"},{name:"volume-high",hex:"F057E",version:"1.5.54"},{name:"volume-low",hex:"F057F",version:"1.5.54"},{name:"volume-medium",hex:"F0580",version:"1.5.54"},{name:"volume-minus",hex:"F075E",version:"1.9.32"},{name:"volume-mute",hex:"F075F",version:"1.9.32"},{name:"volume-off",hex:"F0581",version:"1.5.54"},{name:"volume-plus",hex:"F075D",version:"1.9.32"},{name:"volume-source",hex:"F1120",version:"4.3.95"},{name:"volume-variant-off",hex:"F0E08",version:"3.5.94"},{name:"volume-vibrate",hex:"F1121",version:"4.3.95"},{name:"vote",hex:"F0A1F",version:"2.5.94"},{name:"vote-outline",hex:"F0A20",version:"2.5.94"},{name:"vpn",hex:"F0582",version:"1.5.54"},{name:"vuejs",hex:"F0844",version:"2.1.19"},{name:"vuetify",hex:"F0E6D",version:"3.6.95"},{name:"walk",hex:"F0583",version:"1.5.54"},{name:"wall",hex:"F07FE",version:"2.0.46"},{name:"wall-sconce",hex:"F091C",version:"2.3.50"},{name:"wall-sconce-flat",hex:"F091D",version:"2.3.50"},{name:"wall-sconce-flat-outline",hex:"F17C9",version:"6.1.95"},{name:"wall-sconce-flat-variant",hex:"F041C",version:"1.5.54"},{name:"wall-sconce-flat-variant-outline",hex:"F17CA",version:"6.1.95"},{name:"wall-sconce-outline",hex:"F17CB",version:"6.1.95"},{name:"wall-sconce-round",hex:"F0748",version:"1.9.32"},{name:"wall-sconce-round-outline",hex:"F17CC",version:"6.1.95"},{name:"wall-sconce-round-variant",hex:"F091E",version:"2.3.50"},{name:"wall-sconce-round-variant-outline",hex:"F17CD",version:"6.1.95"},{name:"wallet",hex:"F0584",version:"1.5.54"},{name:"wallet-giftcard",hex:"F0585",version:"1.5.54"},{name:"wallet-membership",hex:"F0586",version:"1.5.54"},{name:"wallet-outline",hex:"F0BDD",version:"3.0.39"},{name:"wallet-plus",hex:"F0F8E",version:"3.9.97"},{name:"wallet-plus-outline",hex:"F0F8F",version:"3.9.97"},{name:"wallet-travel",hex:"F0587",version:"1.5.54"},{name:"wallpaper",hex:"F0E09",version:"3.5.94"},{name:"wan",hex:"F0588",version:"1.5.54"},{name:"wardrobe",hex:"F0F90",version:"3.9.97"},{name:"wardrobe-outline",hex:"F0F91",version:"3.9.97"},{name:"warehouse",hex:"F0F81",version:"3.9.97"},{name:"washing-machine",hex:"F072A",version:"1.8.36"},{name:"washing-machine-alert",hex:"F11BC",version:"4.5.95"},{name:"washing-machine-off",hex:"F11BD",version:"4.5.95"},{name:"watch",hex:"F0589",version:"1.5.54"},{name:"watch-export",hex:"F058A",version:"1.5.54"},{name:"watch-export-variant",hex:"F0895",version:"2.1.99"},{name:"watch-import",hex:"F058B",version:"1.5.54"},{name:"watch-import-variant",hex:"F0896",version:"2.1.99"},{name:"watch-variant",hex:"F0897",version:"2.1.99"},{name:"watch-vibrate",hex:"F06B1",version:"1.7.12"},{name:"watch-vibrate-off",hex:"F0CDA",version:"3.2.89"},{name:"water",hex:"F058C",version:"1.5.54"},{name:"water-alert",hex:"F1502",version:"5.4.55"},{name:"water-alert-outline",hex:"F1503",version:"5.4.55"},{name:"water-boiler",hex:"F0F92",version:"3.9.97"},{name:"water-boiler-alert",hex:"F11B3",version:"4.5.95"},{name:"water-boiler-off",hex:"F11B4",version:"4.5.95"},{name:"water-check",hex:"F1504",version:"5.4.55"},{name:"water-check-outline",hex:"F1505",version:"5.4.55"},{name:"water-circle",hex:"F1806",version:"6.1.95"},{name:"water-minus",hex:"F1506",version:"5.4.55"},{name:"water-minus-outline",hex:"F1507",version:"5.4.55"},{name:"water-off",hex:"F058D",version:"1.5.54"},{name:"water-off-outline",hex:"F1508",version:"5.4.55"},{name:"water-opacity",hex:"F1855",version:"6.2.95"},{name:"water-outline",hex:"F0E0A",version:"3.5.94"},{name:"water-percent",hex:"F058E",version:"1.5.54"},{name:"water-percent-alert",hex:"F1509",version:"5.4.55"},{name:"water-plus",hex:"F150A",version:"5.4.55"},{name:"water-plus-outline",hex:"F150B",version:"5.4.55"},{name:"water-polo",hex:"F12A0",version:"4.7.95"},{name:"water-pump",hex:"F058F",version:"1.5.54"},{name:"water-pump-off",hex:"F0F93",version:"3.9.97"},{name:"water-remove",hex:"F150C",version:"5.4.55"},{name:"water-remove-outline",hex:"F150D",version:"5.4.55"},{name:"water-sync",hex:"F17C6",version:"6.1.95"},{name:"water-well",hex:"F106B",version:"4.1.95"},{name:"water-well-outline",hex:"F106C",version:"4.1.95"},{name:"waterfall",hex:"F1849",version:"6.2.95"},{name:"watering-can",hex:"F1481",version:"5.3.45"},{name:"watering-can-outline",hex:"F1482",version:"5.3.45"},{name:"watermark",hex:"F0612",version:"1.5.54"},{name:"wave",hex:"F0F2E",version:"3.8.95"},{name:"waveform",hex:"F147D",version:"5.2.45"},{name:"waves",hex:"F078D",version:"1.9.32"},{name:"waves-arrow-left",hex:"F1859",version:"6.2.95"},{name:"waves-arrow-right",hex:"F185A",version:"6.2.95"},{name:"waves-arrow-up",hex:"F185B",version:"6.2.95"},{name:"waze",hex:"F0BDE",version:"3.0.39"},{name:"weather-cloudy",hex:"F0590",version:"1.5.54"},{name:"weather-cloudy-alert",hex:"F0F2F",version:"3.8.95"},{name:"weather-cloudy-arrow-right",hex:"F0E6E",version:"3.6.95"},{name:"weather-cloudy-clock",hex:"F18F6",version:"6.3.95"},{name:"weather-fog",hex:"F0591",version:"1.5.54"},{name:"weather-hail",hex:"F0592",version:"1.5.54"},{name:"weather-hazy",hex:"F0F30",version:"3.8.95"},{name:"weather-hurricane",hex:"F0898",version:"2.1.99"},{name:"weather-lightning",hex:"F0593",version:"1.5.54"},{name:"weather-lightning-rainy",hex:"F067E",version:"1.7.12"},{name:"weather-night",hex:"F0594",version:"1.5.54"},{name:"weather-night-partly-cloudy",hex:"F0F31",version:"3.8.95"},{name:"weather-partly-cloudy",hex:"F0595",version:"1.5.54"},{name:"weather-partly-lightning",hex:"F0F32",version:"3.8.95"},{name:"weather-partly-rainy",hex:"F0F33",version:"3.8.95"},{name:"weather-partly-snowy",hex:"F0F34",version:"3.8.95"},{name:"weather-partly-snowy-rainy",hex:"F0F35",version:"3.8.95"},{name:"weather-pouring",hex:"F0596",version:"1.5.54"},{name:"weather-rainy",hex:"F0597",version:"1.5.54"},{name:"weather-snowy",hex:"F0598",version:"1.5.54"},{name:"weather-snowy-heavy",hex:"F0F36",version:"3.8.95"},{name:"weather-snowy-rainy",hex:"F067F",version:"1.7.12"},{name:"weather-sunny",hex:"F0599",version:"1.5.54"},{name:"weather-sunny-alert",hex:"F0F37",version:"3.8.95"},{name:"weather-sunny-off",hex:"F14E4",version:"5.4.55"},{name:"weather-sunset",hex:"F059A",version:"1.5.54"},{name:"weather-sunset-down",hex:"F059B",version:"1.5.54"},{name:"weather-sunset-up",hex:"F059C",version:"1.5.54"},{name:"weather-tornado",hex:"F0F38",version:"3.8.95"},{name:"weather-windy",hex:"F059D",version:"1.5.54"},{name:"weather-windy-variant",hex:"F059E",version:"1.5.54"},{name:"web",hex:"F059F",version:"1.5.54"},{name:"web-box",hex:"F0F94",version:"3.9.97"},{name:"web-cancel",hex:"F1790",version:"6.1.95"},{name:"web-check",hex:"F0789",version:"1.9.32"},{name:"web-clock",hex:"F124A",version:"4.6.95"},{name:"web-minus",hex:"F10A0",version:"4.2.95"},{name:"web-off",hex:"F0A8E",version:"2.7.94"},{name:"web-plus",hex:"F0033",version:"1.5.54"},{name:"web-refresh",hex:"F1791",version:"6.1.95"},{name:"web-remove",hex:"F0551",version:"1.5.54"},{name:"web-sync",hex:"F1792",version:"6.1.95"},{name:"webcam",hex:"F05A0",version:"1.5.54"},{name:"webcam-off",hex:"F1737",version:"5.9.55"},{name:"webhook",hex:"F062F",version:"1.6.50"},{name:"webpack",hex:"F072B",version:"1.8.36"},{name:"webrtc",hex:"F1248",version:"4.6.95"},{name:"wechat",hex:"F0611",version:"1.5.54"},{name:"weight",hex:"F05A1",version:"1.5.54"},{name:"weight-gram",hex:"F0D3F",version:"3.3.92"},{name:"weight-kilogram",hex:"F05A2",version:"1.5.54"},{name:"weight-lifter",hex:"F115D",version:"4.4.95"},{name:"weight-pound",hex:"F09B5",version:"2.4.85"},{name:"whatsapp",hex:"F05A3",version:"1.5.54"},{name:"wheel-barrow",hex:"F14F2",version:"5.4.55"},{name:"wheelchair-accessibility",hex:"F05A4",version:"1.5.54"},{name:"whistle",hex:"F09B6",version:"2.4.85"},{name:"whistle-outline",hex:"F12BC",version:"4.8.95"},{name:"white-balance-auto",hex:"F05A5",version:"1.5.54"},{name:"white-balance-incandescent",hex:"F05A6",version:"1.5.54"},{name:"white-balance-iridescent",hex:"F05A7",version:"1.5.54"},{name:"white-balance-sunny",hex:"F05A8",version:"1.5.54"},{name:"widgets",hex:"F072C",version:"1.8.36"},{name:"widgets-outline",hex:"F1355",version:"4.9.95"},{name:"wifi",hex:"F05A9",version:"1.5.54"},{name:"wifi-alert",hex:"F16B5",version:"5.8.55"},{name:"wifi-arrow-down",hex:"F16B6",version:"5.8.55"},{name:"wifi-arrow-left",hex:"F16B7",version:"5.8.55"},{name:"wifi-arrow-left-right",hex:"F16B8",version:"5.8.55"},{name:"wifi-arrow-right",hex:"F16B9",version:"5.8.55"},{name:"wifi-arrow-up",hex:"F16BA",version:"5.8.55"},{name:"wifi-arrow-up-down",hex:"F16BB",version:"5.8.55"},{name:"wifi-cancel",hex:"F16BC",version:"5.8.55"},{name:"wifi-check",hex:"F16BD",version:"5.8.55"},{name:"wifi-cog",hex:"F16BE",version:"5.8.55"},{name:"wifi-lock",hex:"F16BF",version:"5.8.55"},{name:"wifi-lock-open",hex:"F16C0",version:"5.8.55"},{name:"wifi-marker",hex:"F16C1",version:"5.8.55"},{name:"wifi-minus",hex:"F16C2",version:"5.8.55"},{name:"wifi-off",hex:"F05AA",version:"1.5.54"},{name:"wifi-plus",hex:"F16C3",version:"5.8.55"},{name:"wifi-refresh",hex:"F16C4",version:"5.8.55"},{name:"wifi-remove",hex:"F16C5",version:"5.8.55"},{name:"wifi-settings",hex:"F16C6",version:"5.8.55"},{name:"wifi-star",hex:"F0E0B",version:"3.5.94"},{name:"wifi-strength-1",hex:"F091F",version:"2.3.50"},{name:"wifi-strength-1-alert",hex:"F0920",version:"2.3.50"},{name:"wifi-strength-1-lock",hex:"F0921",version:"2.3.50"},{name:"wifi-strength-1-lock-open",hex:"F16CB",version:"5.8.55"},{name:"wifi-strength-2",hex:"F0922",version:"2.3.50"},{name:"wifi-strength-2-alert",hex:"F0923",version:"2.3.50"},{name:"wifi-strength-2-lock",hex:"F0924",version:"2.3.50"},{name:"wifi-strength-2-lock-open",hex:"F16CC",version:"5.8.55"},{name:"wifi-strength-3",hex:"F0925",version:"2.3.50"},{name:"wifi-strength-3-alert",hex:"F0926",version:"2.3.50"},{name:"wifi-strength-3-lock",hex:"F0927",version:"2.3.50"},{name:"wifi-strength-3-lock-open",hex:"F16CD",version:"5.8.55"},{name:"wifi-strength-4",hex:"F0928",version:"2.3.50"},{name:"wifi-strength-4-alert",hex:"F0929",version:"2.3.50"},{name:"wifi-strength-4-lock",hex:"F092A",version:"2.3.50"},{name:"wifi-strength-4-lock-open",hex:"F16CE",version:"5.8.55"},{name:"wifi-strength-alert-outline",hex:"F092B",version:"2.3.50"},{name:"wifi-strength-lock-open-outline",hex:"F16CF",version:"5.8.55"},{name:"wifi-strength-lock-outline",hex:"F092C",version:"2.3.50"},{name:"wifi-strength-off",hex:"F092D",version:"2.3.50"},{name:"wifi-strength-off-outline",hex:"F092E",version:"2.3.50"},{name:"wifi-strength-outline",hex:"F092F",version:"2.3.50"},{name:"wifi-sync",hex:"F16C7",version:"5.8.55"},{name:"wikipedia",hex:"F05AC",version:"1.5.54"},{name:"wind-turbine",hex:"F0DA5",version:"3.4.93"},{name:"wind-turbine-alert",hex:"F19AB",version:"6.5.95"},{name:"wind-turbine-check",hex:"F19AC",version:"6.5.95"},{name:"window-close",hex:"F05AD",version:"1.5.54"},{name:"window-closed",hex:"F05AE",version:"1.5.54"},{name:"window-closed-variant",hex:"F11DB",version:"4.5.95"},{name:"window-maximize",hex:"F05AF",version:"1.5.54"},{name:"window-minimize",hex:"F05B0",version:"1.5.54"},{name:"window-open",hex:"F05B1",version:"1.5.54"},{name:"window-open-variant",hex:"F11DC",version:"4.5.95"},{name:"window-restore",hex:"F05B2",version:"1.5.54"},{name:"window-shutter",hex:"F111C",version:"4.3.95"},{name:"window-shutter-alert",hex:"F111D",version:"4.3.95"},{name:"window-shutter-open",hex:"F111E",version:"4.3.95"},{name:"windsock",hex:"F15FA",version:"5.6.55"},{name:"wiper",hex:"F0AE9",version:"2.7.94"},{name:"wiper-wash",hex:"F0DA6",version:"3.4.93"},{name:"wiper-wash-alert",hex:"F18DF",version:"6.3.95"},{name:"wizard-hat",hex:"F1477",version:"5.2.45"},{name:"wordpress",hex:"F05B4",version:"1.5.54"},{name:"wrap",hex:"F05B6",version:"1.5.54"},{name:"wrap-disabled",hex:"F0BDF",version:"3.0.39"},{name:"wrench",hex:"F05B7",version:"1.5.54"},{name:"wrench-clock",hex:"F19A3",version:"6.5.95"},{name:"wrench-outline",hex:"F0BE0",version:"3.0.39"},{name:"xamarin",hex:"F0845",version:"2.1.19"},{name:"xml",hex:"F05C0",version:"1.5.54"},{name:"xmpp",hex:"F07FF",version:"2.0.46"},{name:"yahoo",hex:"F0B4F",version:"2.8.94"},{name:"yeast",hex:"F05C1",version:"1.5.54"},{name:"yin-yang",hex:"F0680",version:"1.7.12"},{name:"yoga",hex:"F117C",version:"4.4.95"},{name:"youtube",hex:"F05C3",version:"1.5.54"},{name:"youtube-gaming",hex:"F0848",version:"2.1.19"},{name:"youtube-studio",hex:"F0847",version:"2.1.19"},{name:"youtube-subscription",hex:"F0D40",version:"3.3.92"},{name:"youtube-tv",hex:"F0448",version:"1.5.54"},{name:"yurt",hex:"F1516",version:"5.4.55"},{name:"z-wave",hex:"F0AEA",version:"2.7.94"},{name:"zend",hex:"F0AEB",version:"2.7.94"},{name:"zigbee",hex:"F0D41",version:"3.3.92"},{name:"zip-box",hex:"F05C4",version:"1.5.54"},{name:"zip-box-outline",hex:"F0FFA",version:"4.0.96"},{name:"zip-disk",hex:"F0A23",version:"2.5.94"},{name:"zodiac-aquarius",hex:"F0A7D",version:"2.6.95"},{name:"zodiac-aries",hex:"F0A7E",version:"2.6.95"},{name:"zodiac-cancer",hex:"F0A7F",version:"2.6.95"},{name:"zodiac-capricorn",hex:"F0A80",version:"2.6.95"},{name:"zodiac-gemini",hex:"F0A81",version:"2.6.95"},{name:"zodiac-leo",hex:"F0A82",version:"2.6.95"},{name:"zodiac-libra",hex:"F0A83",version:"2.6.95"},{name:"zodiac-pisces",hex:"F0A84",version:"2.6.95"},{name:"zodiac-sagittarius",hex:"F0A85",version:"2.6.95"},{name:"zodiac-scorpio",hex:"F0A86",version:"2.6.95"},{name:"zodiac-taurus",hex:"F0A87",version:"2.6.95"},{name:"zodiac-virgo",hex:"F0A88",version:"2.6.95"}]; - icons.push({ "name": "blank", "hex": "f68c" }); - Array.from(icons).forEach(function (icon) { - var item = getIconItem(icon, isNew(icon)); - document.getElementById('icons').appendChild(item); - if (isNew(icon)) { - var newItem = getIconItem(icon, false, false); - document.getElementById('newIcons').appendChild(newItem); - newIconsCount++; - } - iconsCount++; - }); -})(); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/modal.init.js b/src/main/resources/static/assets/js/pages/modal.init.js deleted file mode 100644 index 134c8c8..0000000 --- a/src/main/resources/static/assets/js/pages/modal.init.js +++ /dev/null @@ -1,27 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Modal init js -*/ - - -var varyingcontentModal = document.getElementById('varyingcontentModal') -if (varyingcontentModal) { - varyingcontentModal.addEventListener('show.bs.modal', function (event) { - // Button that triggered the modal - var button = event.relatedTarget - // Extract info from data-bs-* attributes - var recipient = button.getAttribute('data-bs-whatever') - // If necessary, you could initiate an AJAX request here - // and then do the updating in a callback. - // - // Update the modal's content. - var modalTitle = varyingcontentModal.querySelector('.modal-title') - var modalBodyInput = varyingcontentModal.querySelector('.modal-body input') - - modalTitle.textContent = 'New message to ' + recipient - modalBodyInput.value = recipient - }) -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/nestable.init.js b/src/main/resources/static/assets/js/pages/nestable.init.js deleted file mode 100644 index 8452ad2..0000000 --- a/src/main/resources/static/assets/js/pages/nestable.init.js +++ /dev/null @@ -1,35 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: nestable init js -*/ - -// Nested sortable demo -var nestedSortables = [].slice.call(document.querySelectorAll('.nested-sortable')); - -// Loop through each nested sortable element -if (nestedSortables) - Array.from(nestedSortables).forEach(function (nestedSort){ - new Sortable(nestedSort, { - group: 'nested', - animation: 150, - fallbackOnBody: true, - swapThreshold: 0.65 - }); - }); - -// Nested sortable handle demo -var nestedSortablesHandles = [].slice.call(document.querySelectorAll('.nested-sortable-handle')); -if (nestedSortablesHandles) - // Loop through each nested sortable element - Array.from(nestedSortablesHandles).forEach(function (nestedSortHandle){ - new Sortable(nestedSortHandle, { - handle: '.handle', - group: 'nested', - animation: 150, - fallbackOnBody: true, - swapThreshold: 0.65 - }); - }); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/nft-landing.init.js b/src/main/resources/static/assets/js/pages/nft-landing.init.js deleted file mode 100644 index 00cdc43..0000000 --- a/src/main/resources/static/assets/js/pages/nft-landing.init.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: nft-landing init js -*/ - -// Window scroll sticky class add -function windowScroll() { - var navbar = document.getElementById("navbar"); - if (navbar) { - if (document.body.scrollTop >= 50 || document.documentElement.scrollTop >= 50) { - navbar.classList.add("is-sticky"); - } else { - navbar.classList.remove("is-sticky"); - } - } -} - -window.addEventListener('scroll', function (ev) { - ev.preventDefault(); - windowScroll(); -}); - -// filter btn -var filterBtns = document.querySelectorAll(".filter-btns .nav-link"); -var productItems = document.querySelectorAll(".product-item"); - -Array.from(filterBtns).forEach(function (button) { - button.addEventListener("click", function (e) { - e.preventDefault(); - - for (var i = 0; i < filterBtns.length; i++) { - filterBtns[i].classList.remove("active"); - } - this.classList.add("active"); - - var filter = e.target.dataset.filter; - - Array.from(productItems).forEach(function (item) { - if (filter === "all") { - item.style.display = "block"; - } else { - if (item.classList.contains(filter)) { - item.style.display = "block"; - } else { - item.style.display = "none"; - } - } - }); - }); -}); - -//collection categories -var swiper = new Swiper(".mySwiper", { - slidesPerView: 1, - spaceBetween: 30, - loop: true, - autoplay: { - delay: 2500, - disableOnInteraction: false, - }, - pagination: { - el: ".swiper-pagination", - clickable: true, - }, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - breakpoints: { - 576: { - slidesPerView: 2, - }, - 768: { - slidesPerView: 3, - }, - 1200: { - slidesPerView: 4, - }, - }, -}); - - -// -/********************* scroll top js ************************/ -// - -var mybutton = document.getElementById("back-to-top"); - -// When the user scrolls down 20px from the top of the document, show the button -window.onscroll = function () { - scrollFunction(); -}; - -function scrollFunction() { - if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) { - mybutton.style.display = "block"; - } else { - mybutton.style.display = "none"; - } -} - -// When the user clicks on the button, scroll to the top of the document -function topFunction() { - document.body.scrollTop = 0; - document.documentElement.scrollTop = 0; -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/notifications.init.js b/src/main/resources/static/assets/js/pages/notifications.init.js deleted file mode 100644 index 8b9b3b7..0000000 --- a/src/main/resources/static/assets/js/pages/notifications.init.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Notifications init js -*/ - -// Bordered Toast -var toastTrigger2 = document.getElementById("borderedToast1Btn"); -var toastLiveExample2 = document.getElementById("borderedToast1"); -if (toastTrigger2 && toastLiveExample2) { - toastTrigger2.addEventListener("click", function () { - var toast = new bootstrap.Toast(toastLiveExample2); - toast.show(); - }); -} - -var toastTrigger3 = document.getElementById("borderedToast2Btn"); -var toastLiveExample3 = document.getElementById("borderedToast2"); -if (toastTrigger3 && toastLiveExample3) { - toastTrigger3.addEventListener("click", function () { - var toast = new bootstrap.Toast(toastLiveExample3); - toast.show(); - }); -} - -var toastTrigger4 = document.getElementById("borderedTost3Btn"); -var toastLiveExample4 = document.getElementById("borderedTost3"); -if (toastTrigger4 && toastLiveExample4) { - toastTrigger4.addEventListener("click", function () { - var toast = new bootstrap.Toast(toastLiveExample4); - toast.show(); - }); -} - -var toastTrigger5 = document.getElementById("borderedToast4Btn"); -var toastLiveExample5 = document.getElementById("borderedToast4"); -if (toastTrigger5 && toastLiveExample5) { - toastTrigger5.addEventListener("click", function () { - var toast = new bootstrap.Toast(toastLiveExample5); - toast.show(); - }); -} - -// placement toast -toastPlacement = document.getElementById("toastPlacement"); -toastPlacement && document.getElementById("selectToastPlacement").addEventListener("change", function () { - toastPlacement.dataset.originalClass || - (toastPlacement.dataset.originalClass = toastPlacement.className), - (toastPlacement.className = - toastPlacement.dataset.originalClass + " " + this.value); -}), - -Array.from(document.querySelectorAll(".bd-example .toast")).forEach(function (a) { - var b = new bootstrap.Toast(a, { - autohide: !1 - }); - b.show(); -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/particles.app.js b/src/main/resources/static/assets/js/pages/particles.app.js deleted file mode 100644 index ae45abf..0000000 --- a/src/main/resources/static/assets/js/pages/particles.app.js +++ /dev/null @@ -1,132 +0,0 @@ -/* ----------------------------------------------- -/* How to use? : Check the GitHub README -/* ----------------------------------------------- */ - -/* To load a config file (particles.json) you need to host this demo (MAMP/WAMP/local)... */ -/* -particlesJS.load('particles-js', 'particles.json', function() { - console.log('particles.js loaded - callback'); -}); -*/ - -/* Otherwise just put the config content (json): */ - - -particlesJS('auth-particles', - { - "particles": { - "number": { - "value": 90, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#ffffff" - }, - "shape": { - "type": "circle", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 5 - }, - "image": { - "src": "img/github.svg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 0.8, - "random": true, - "anim": { - "enable": true, - "speed": 1, - "opacity_min": 0, - "sync": false - } - }, - "size": { - "value": 4, - "random": true, - "anim": { - "enable": false, - "speed": 4, - "size_min": 0.2, - "sync": false - } - }, - "line_linked": { - "enable": false, - "distance": 150, - "color": "#ffffff", - "opacity": 0.4, - "width": 1 - }, - "move": { - "enable": true, - "speed": 2, - "direction": "none", - "random": false, - "straight": false, - "out_mode": "out", - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": true, - "mode": "bubble" - }, - "onclick": { - "enable": true, - "mode": "repulse" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 400, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 400, - "size": 4, - "duration": 2, - "opacity": 0.8, - "speed": 3 - }, - "repulse": { - "distance": 200 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true, - "config_demo": { - "hide_card": false, - "background_color": "#b61924", - "background_image": "", - "background_position": "50% 50%", - "background_repeat": "no-repeat", - "background_size": "cover" - } - } -); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/pricing.init.js b/src/main/resources/static/assets/js/pages/pricing.init.js deleted file mode 100644 index 910dc58..0000000 --- a/src/main/resources/static/assets/js/pages/pricing.init.js +++ /dev/null @@ -1,48 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: pricing init js -*/ -if (document.querySelectorAll(".plan-nav .nav-item .nav-link")) { - Array.from(document.querySelectorAll(".plan-nav .nav-item .nav-link")).forEach(function (e) { - var month = document.getElementsByClassName("month"); - var annual = document.getElementsByClassName("annual"); - if (e.classList.contains("active") == true) { - var i = 0; - Array.from(month).forEach(function (m){ - annual[i].style.display = "none"; - m.style.display = "block"; - i ++; - }); - } - }); -} - -if (document.getElementById("month-tab")) { - document.getElementById("month-tab").addEventListener("click", function () { - var month = document.getElementsByClassName("month"); - var annual = document.getElementsByClassName("annual"); - var i = 0; - Array.from(month).forEach(function (m){ - if (annual[i]) annual[i].style.display = "none"; - if (m) m.style.display = "block"; - i ++; - }); - }); -} - -if (document.getElementById("annual-tab")) { - document.getElementById("annual-tab").addEventListener("click", function () { - var month = document.getElementsByClassName("month"); - var annual = document.getElementsByClassName("annual"); - - var i = 0; - Array.from(month).forEach(function (m){ - if (annual[i]) annual[i].style.display = "block"; - if (m) m.style.display = "none"; - i ++; - }); - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/profile-setting.init.js b/src/main/resources/static/assets/js/pages/profile-setting.init.js deleted file mode 100644 index c1e2ae9..0000000 --- a/src/main/resources/static/assets/js/pages/profile-setting.init.js +++ /dev/null @@ -1,161 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Profile-setting init js -*/ - -// Profile Foreground Img -if (document.querySelector("#profile-foreground-img-file-input")) { - document.querySelector("#profile-foreground-img-file-input").addEventListener("change", function () { - var preview = document.querySelector(".profile-wid-img"); - var file = document.querySelector(".profile-foreground-img-file-input") - .files[0]; - var reader = new FileReader(); - reader.addEventListener( - "load", - function () { - preview.src = reader.result; - }, - false - ); - if (file) { - reader.readAsDataURL(file); - } - }); -} - -// Profile Foreground Img -if (document.querySelector("#profile-img-file-input")) { - document.querySelector("#profile-img-file-input").addEventListener("change", function () { - var preview = document.querySelector(".user-profile-image"); - var file = document.querySelector(".profile-img-file-input").files[0]; - var reader = new FileReader(); - reader.addEventListener( - "load", - function () { - preview.src = reader.result; - }, - false - ); - if (file) { - reader.readAsDataURL(file); - } - }); -} - - -var count = 2; - -// var genericExamples = document.querySelectorAll("[data-trigger]"); -// for (i = 0; i < genericExamples.length; ++i) { -// var element = genericExamples[i]; -// new Choices(element, { -// placeholderValue: "This is a placeholder set in the config", -// searchPlaceholderValue: "This is a search placeholder", -// searchEnabled: false, -// }); -// } - -function new_link() { - count++; - var div1 = document.createElement('div'); - div1.id = count; - - var delLink = '
    ' + - '
    ' + - '' + - '' + - '
    ' + - '
    ' + - '
    ' + - '' + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + - '
    ' + - '
    ' + - '' + - '
    ' + - '
    to
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + - '' + - '
    '; - - div1.innerHTML = document.getElementById('newForm').innerHTML + delLink; - - document.getElementById('newlink').appendChild(div1); - - var genericExamples = document.querySelectorAll("[data-trigger]"); - Array.from(genericExamples).forEach(function (genericExamp) { - var element = genericExamp; - new Choices(element, { - placeholderValue: "This is a placeholder set in the config", - searchPlaceholderValue: "This is a search placeholder", - searchEnabled: false, - }); - }); -} - -function deleteEl(eleId) { - d = document; - var ele = d.getElementById(eleId); - var parentEle = d.getElementById('newlink'); - parentEle.removeChild(ele); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/profile.init.js b/src/main/resources/static/assets/js/pages/profile.init.js deleted file mode 100644 index a6d86a7..0000000 --- a/src/main/resources/static/assets/js/pages/profile.init.js +++ /dev/null @@ -1,31 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Profile init js -*/ - -// project-swiper -var swiper = new Swiper(".project-swiper", { - slidesPerView: 1, - spaceBetween: 24, - navigation: { - nextEl: ".slider-button-next", - prevEl: ".slider-button-prev", - }, - breakpoints: { - 640: { - slidesPerView: 1, - spaceBetween: 15, - }, - 768: { - slidesPerView: 2, - spaceBetween: 20, - }, - 1200: { - slidesPerView: 3, - spaceBetween: 25, - }, - }, -}); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/project-create.init.js b/src/main/resources/static/assets/js/pages/project-create.init.js deleted file mode 100644 index f3e9f1f..0000000 --- a/src/main/resources/static/assets/js/pages/project-create.init.js +++ /dev/null @@ -1,35 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Project create init js -*/ - -// ckeditor -var ckeditorClassic = document.querySelector('#ckeditor-classic'); -if (ckeditorClassic) { - ClassicEditor - .create(document.querySelector('#ckeditor-classic')) - .then(function (editor) { - editor.ui.view.editable.element.style.height = '200px'; - }) - .catch(function (error) { - console.error(error); - }); -} - -// Dropzone -var dropzonePreviewNode = document.querySelector("#dropzone-preview-list"); -if (dropzonePreviewNode) { - dropzonePreviewNode.id = ""; - var previewTemplate = dropzonePreviewNode.parentNode.innerHTML; - dropzonePreviewNode.parentNode.removeChild(dropzonePreviewNode); - var dropzone = new Dropzone(".dropzone", { - url: 'https://httpbin.org/post', - method: "post", - previewTemplate: previewTemplate, - previewsContainer: "#dropzone-preview", - }); - -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/project-list.init.js b/src/main/resources/static/assets/js/pages/project-list.init.js deleted file mode 100644 index 8c8f04b..0000000 --- a/src/main/resources/static/assets/js/pages/project-list.init.js +++ /dev/null @@ -1,28 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Project list init js -*/ - -// favourite btn -var favouriteBtn = document.querySelectorAll(".favourite-btn"); -if (favouriteBtn) { - Array.from(document.querySelectorAll(".favourite-btn")).forEach(function (item) { - item.addEventListener("click", function (event) { - this.classList.toggle("active"); - }); - }); -} - -// Remove product from cart -var removeProduct = document.getElementById('removeProjectModal') -if (removeProduct) { - removeProduct.addEventListener('show.bs.modal', function (e) { - document.getElementById('remove-project').addEventListener('click', function (event) { - e.relatedTarget.closest('.project-card').remove(); - document.getElementById("close-modal").click(); - }); - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/project-overview.init.js b/src/main/resources/static/assets/js/pages/project-overview.init.js deleted file mode 100644 index 9b3c18d..0000000 --- a/src/main/resources/static/assets/js/pages/project-overview.init.js +++ /dev/null @@ -1,17 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Project overview init js -*/ - -// favourite btn -var favouriteBtn = document.querySelectorAll(".favourite-btn"); -if (favouriteBtn) { - Array.from(document.querySelectorAll(".favourite-btn")).forEach(function (item) { - item.addEventListener("click", function (event) { - this.classList.toggle("active"); - }); - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/range-sliders.init.js b/src/main/resources/static/assets/js/pages/range-sliders.init.js deleted file mode 100644 index 80f8c9d..0000000 --- a/src/main/resources/static/assets/js/pages/range-sliders.init.js +++ /dev/null @@ -1,465 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Range sliders Js File -*/ - -/********************* - basic example -**********************/ -var sliderColorScheme = document.querySelectorAll('[data-rangeslider]'); -if (sliderColorScheme) - Array.from(sliderColorScheme).forEach(function (slider) { - noUiSlider.create(slider, { - start: 127, - connect: 'lower', - range: { - 'min': 0, - 'max': 255 - }, - }); - }); - -/********************* - multi range handle -**********************/ - -var multielementslider = document.querySelectorAll('[data-multielement]'); -if (multielementslider) - Array.from(multielementslider).forEach(function (slider) { - noUiSlider.create(slider, { - start: [20, 80], - connect: true, - range: { - 'min': 0, - 'max': 100 - } - }); - }); - -/********************* - Colorpicker -**********************/ - -var resultElement = document.getElementById('result'); -var sliders = document.getElementsByClassName('sliders'); -var colors = [0, 0, 0]; -if (sliders) - Array.from([].slice.call(sliders)).forEach(function (slider, index) { - - noUiSlider.create(slider, { - start: 127, - connect: [true, false], - orientation: "vertical", - range: { - 'min': 0, - 'max': 255 - }, - format: wNumb({ - decimals: 0 - }) - }); - - // Bind the color changing function to the update event. - slider.noUiSlider.on('update', function () { - - colors[index] = slider.noUiSlider.get(); - - var color = 'rgb(' + colors.join(',') + ')'; - - resultElement.style.background = color; - resultElement.style.color = color; - }); - }); - -/********************* - Using HTML5 input elements -**********************/ - -var select = document.getElementById('input-select'); -// Append the option elements -for (var i = -20; i <= 40; i++) { - var option = document.createElement("option"); - option.text = i; - option.value = i; - select.appendChild(option); -} - -var html5Slider = document.getElementById('html5'); -if (html5Slider) - noUiSlider.create(html5Slider, { - start: [10, 30], - connect: true, - range: { - 'min': -20, - 'max': 40 - } - }); - -var inputNumber = document.getElementById('input-number'); -if (inputNumber && html5Slider) { - html5Slider.noUiSlider.on('update', function (values, handle) { - - var value = values[handle]; - - if (handle) { - inputNumber.value = value; - } else { - select.value = Math.round(value); - } - }); - - select.addEventListener('change', function () { - html5Slider.noUiSlider.set([this.value, null]); - }); - - inputNumber.addEventListener('change', function () { - html5Slider.noUiSlider.set([null, this.value]); - }); -} - -/********************* - Non linear slider -**********************/ -var nonLinearSlider = document.getElementById('nonlinear'); -if (nonLinearSlider) - noUiSlider.create(nonLinearSlider, { - connect: true, - behaviour: 'tap', - start: [500, 4000], - range: { - // Starting at 500, step the value by 500, - // until 4000 is reached. From there, step by 1000. - 'min': [0], - '10%': [500, 500], - '50%': [4000, 1000], - 'max': [10000] - } - }); - -var nodes = [ - document.getElementById('lower-value'), // 0 - document.getElementById('upper-value') // 1 -]; - -// Display the slider value and how far the handle moved -// from the left edge of the slider. -nonLinearSlider.noUiSlider.on('update', function (values, handle, unencoded, isTap, positions) { - nodes[handle].innerHTML = values[handle] + ', ' + positions[handle].toFixed(2) + '%'; -}); - -/********************* - Locking sliders together -**********************/ -var lockedState = false; -var lockedSlider = false; -var lockedValues = [60, 80]; - -var slider1 = document.getElementById('slider1'); -var slider2 = document.getElementById('slider2'); - -var lockButton = document.getElementById('lockbutton'); -var slider1Value = document.getElementById('slider1-span'); -var slider2Value = document.getElementById('slider2-span'); - -// When the button is clicked, the locked state is inverted. -if (lockButton) - lockButton.addEventListener('click', function () { - lockedState = !lockedState; - this.textContent = lockedState ? 'unlock' : 'lock'; - }); - -function crossUpdate(value, slider) { - - // If the sliders aren't interlocked, don't - // cross-update. - if (!lockedState) return; - - // Select whether to increase or decrease - // the other slider value. - var a = slider1 === slider ? 0 : 1; - - // Invert a - var b = a ? 0 : 1; - - // Offset the slider value. - value -= lockedValues[b] - lockedValues[a]; - - // Set the value - slider.noUiSlider.set(value); -} - -noUiSlider.create(slider1, { - start: 60, - - // Disable animation on value-setting, - // so the sliders respond immediately. - animate: false, - range: { - min: 50, - max: 100 - } -}); - -noUiSlider.create(slider2, { - start: 80, - animate: false, - range: { - min: 50, - max: 100 - } -}); - -if (slider1 && slider2) { - slider1.noUiSlider.on('update', function (values, handle) { - slider1Value.innerHTML = values[handle]; - }); - slider2.noUiSlider.on('update', function (values, handle) { - slider2Value.innerHTML = values[handle]; - }); - - - function setLockedValues() { - lockedValues = [ - Number(slider1.noUiSlider.get()), - Number(slider2.noUiSlider.get()) - ]; - } - - slider1.noUiSlider.on('change', setLockedValues); - slider2.noUiSlider.on('change', setLockedValues); - - slider1.noUiSlider.on('slide', function (values, handle) { - crossUpdate(values[handle], slider2); - }); - - slider2.noUiSlider.on('slide', function (values, handle) { - crossUpdate(values[handle], slider1); - }); -} - -/********************* - mergingTooltipSlider -**********************/ -var mergingTooltipSlider = document.getElementById('slider-merging-tooltips'); -if (mergingTooltipSlider) { - noUiSlider.create(mergingTooltipSlider, { - start: [20, 75], - connect: true, - tooltips: [true, true], - range: { - 'min': 0, - 'max': 100 - } - }); - - mergeTooltips(mergingTooltipSlider, 5, ' - '); -} - -/** - * @param slider HtmlElement with an initialized slider - * @param threshold Minimum proximity (in percentages) to merge tooltips - * @param separator String joining tooltips - */ -function mergeTooltips(slider, threshold, separator) { - - var textIsRtl = getComputedStyle(slider).direction === 'rtl'; - var isRtl = slider.noUiSlider.options.direction === 'rtl'; - var isVertical = slider.noUiSlider.options.orientation === 'vertical'; - var tooltips = slider.noUiSlider.getTooltips(); - var origins = slider.noUiSlider.getOrigins(); - - // Move tooltips into the origin element. The default stylesheet handles this. - Array.from(tooltips).forEach(function (tooltip, index) { - if (tooltip) { - origins[index].appendChild(tooltip); - } - }); - if (slider) - slider.noUiSlider.on('update', function (values, handle, unencoded, tap, positions) { - - var pools = [ - [] - ]; - var poolPositions = [ - [] - ]; - var poolValues = [ - [] - ]; - var atPool = 0; - - // Assign the first tooltip to the first pool, if the tooltip is configured - if (tooltips[0]) { - pools[0][0] = 0; - poolPositions[0][0] = positions[0]; - poolValues[0][0] = values[0]; - } - - for (var i = 1; i < positions.length; i++) { - if (!tooltips[i] || (positions[i] - positions[i - 1]) > threshold) { - atPool++; - pools[atPool] = []; - poolValues[atPool] = []; - poolPositions[atPool] = []; - } - - if (tooltips[i]) { - pools[atPool].push(i); - poolValues[atPool].push(values[i]); - poolPositions[atPool].push(positions[i]); - } - } - - Array.from(pools).forEach(function (pool, poolIndex) { - var handlesInPool = pool.length; - - for (var j = 0; j < handlesInPool; j++) { - var handleNumber = pool[j]; - - if (j === handlesInPool - 1) { - var offset = 0; - - Array.from(poolPositions[poolIndex]).forEach(function (value) { - offset += 1000 - value; - }); - - var direction = isVertical ? 'bottom' : 'right'; - var last = isRtl ? 0 : handlesInPool - 1; - var lastOffset = 1000 - poolPositions[poolIndex][last]; - offset = (textIsRtl && !isVertical ? 100 : 0) + (offset / handlesInPool) - lastOffset; - - // Center this tooltip over the affected handles - tooltips[handleNumber].innerHTML = poolValues[poolIndex].join(separator); - tooltips[handleNumber].style.display = 'block'; - tooltips[handleNumber].style[direction] = offset + '%'; - } else { - // Hide this tooltip - tooltips[handleNumber].style.display = 'none'; - } - } - }); - }); -} - -/********************* - tooltip -**********************/ -var hidingTooltipSlider = document.getElementById('slider-hide'); -if (hidingTooltipSlider) - noUiSlider.create(hidingTooltipSlider, { - range: { - min: 0, - max: 100 - }, - start: [20, 80], - tooltips: true - }); - -/********************* - pipe - scale -**********************/ -var pipsSlider = document.getElementById('slider-pips'); -if (pipsSlider) - noUiSlider.create(pipsSlider, { - range: { - min: 0, - max: 100 - }, - start: [50], - pips: { - mode: 'count', - values: 5 - } - }); - -var pips = pipsSlider.querySelectorAll('.noUi-value'); - -function clickOnPip() { - var value = Number(this.getAttribute('data-value')); - pipsSlider.noUiSlider.set(value); -} -if (pips) - Array.from(pips).forEach(function (ele) { - // For this example. Do this in CSS! - ele.style.cursor = 'pointer'; - ele.addEventListener('click', clickOnPip); - }); - -/********************* - Colored Connect Elements -**********************/ -var slider = document.getElementById('slider-color'); -if (slider) - noUiSlider.create(slider, { - start: [4000, 8000, 12000, 16000], - connect: [false, true, true, true, true], - range: { - 'min': [2000], - 'max': [20000] - } - }); - -var connect = slider.querySelectorAll('.noUi-connect'); -var classes = ['c-1-color', 'c-2-color', 'c-3-color', 'c-4-color', 'c-5-color']; - -var i = 0; -Array.from(connect).forEach(function (ele) { - ele.classList.add(classes[i]); - i ++; -}); - -/********************* - toggle slider -**********************/ -var toggleSlider = document.getElementById('slider-toggle'); -if (toggleSlider) { - noUiSlider.create(toggleSlider, { - orientation: "vertical", - start: 0, - range: { - 'min': [0, 1], - 'max': 1 - }, - format: wNumb({ - decimals: 0 - }) - }); - - toggleSlider.noUiSlider.on('update', function (values, handle) { - if (values[handle] === '1') { - toggleSlider.classList.add('off'); - } else { - toggleSlider.classList.remove('off'); - } - }); -} - -/********************* - Soft limits -**********************/ -var softSlider = document.getElementById('soft'); -if (softSlider) { - noUiSlider.create(softSlider, { - start: 50, - range: { - min: 0, - max: 100 - }, - pips: { - mode: 'values', - values: [20, 80], - density: 4 - } - }); - - softSlider.noUiSlider.on('change', function (values, handle) { - if (values[handle] < 20) { - softSlider.noUiSlider.set(20); - } else if (values[handle] > 80) { - softSlider.noUiSlider.set(80); - } - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/rating.init.js b/src/main/resources/static/assets/js/pages/rating.init.js deleted file mode 100644 index d7a42f3..0000000 --- a/src/main/resources/static/assets/js/pages/rating.init.js +++ /dev/null @@ -1,102 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: Rating Js File -*/ - -// basic-rater -if (document.querySelector('#basic-rater')) - var basicRating = raterJs({ - starSize: 22, - rating: 3, - element: document.querySelector("#basic-rater"), - rateCallback: function rateCallback(rating, done) { - this.setRating(rating); - done(); - } - }); - -// rater-step -if (document.querySelector('#rater-step')) - var starRatingStep = raterJs({ - starSize: 22, - rating: 1.5, - element: document.querySelector("#rater-step"), - rateCallback: function rateCallback(rating, done) { - this.setRating(rating); - done(); - } - }); - -// rater-message -var messageDataService = { - rate: function (rating) { - return { - then: function (callback) { - setTimeout(function () { - callback((Math.random() * 5)); - }, 1000); - } - } - } -} - -if (document.querySelector('#rater-message')) - var starRatingmessage = raterJs({ - isBusyText: "Rating in progress. Please wait...", - starSize: 22, - element: document.querySelector("#rater-message"), - rateCallback: function rateCallback(rating, done) { - starRatingmessage.setRating(rating); - messageDataService.rate().then(function (avgRating) { - starRatingmessage.setRating(avgRating); - done(); - }); - } - }); - -// rater-unlimitedstar -if (document.querySelector('#rater-unlimitedstar')) - var starRatingunlimited = raterJs({ - max: 16, - readOnly: true, - rating: 4.4, - element: document.querySelector("#rater-unlimitedstar") - }); - -// rater-onhover -if (document.querySelector('#rater-onhover')) - var starRatinghover = raterJs({ - starSize: 22, - rating: 1, - element: document.querySelector("#rater-onhover"), - rateCallback: function rateCallback(rating, done) { - this.setRating(rating); - done(); - }, - onHover: function (currentIndex, currentRating) { - document.querySelector('.ratingnum').textContent = currentIndex; - }, - onLeave: function (currentIndex, currentRating) { - document.querySelector('.ratingnum').textContent = currentRating; - } - }); - -// rater-reset -if (document.querySelector('#raterreset')) - var starRatingreset = raterJs({ - starSize: 22, - rating: 2, - element: document.querySelector("#raterreset"), - rateCallback: function rateCallback(rating, done) { - this.setRating(rating); - done(); - } - }); - -if (document.querySelector('#raterreset-button')) - document.querySelector('#raterreset-button').addEventListener("click", function () { - starRatingreset.clear(); - }, false); \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/remix-icons-listing.js b/src/main/resources/static/assets/js/pages/remix-icons-listing.js deleted file mode 100644 index 77728a1..0000000 --- a/src/main/resources/static/assets/js/pages/remix-icons-listing.js +++ /dev/null @@ -1,27 +0,0 @@ -var icons = '{"Buildings":{"home":["house","房子","家","主页"],"home-2":["house","房子","家","主页"],"home-3":["house","房子","家","主页"],"home-4":["house","房子","家","主页"],"home-5":["house","房子","家","主页"],"home-6":["house","房子","家","主页"],"home-7":["house","房子","家","主页"],"home-8":["house","房子","家","主页"],"home-gear":["house","房子","工厂"],"home-wifi":["smart home","房子","家具","智能家居"],"home-smile":["house","smart home","smile","房子","智能家居","微笑"],"home-smile-2":["house","smart home","smile","房子","智能家居","微笑"],"home-heart":["house","心","房子","家","主页","孤儿院"],"building":["city","office","enterprise","建筑","城市","楼","办公楼","写字楼","企业"],"building-2":["city","office","construction","enterprise","城市","建筑","楼","企业"],"building-3":["factory","plant","enterprise","工厂","建筑","楼","企业"],"building-4":["city","office","enterprise","建筑","城市","楼","办公楼","写字楼","企业"],"hotel":["building","hotel","office","enterprise","tavern","建筑","酒店","楼","办公楼","写字楼","企业"],"community":["building","hotel","社区","建筑","酒店"],"government":["building","政府","建筑","大会堂"],"bank":["bank","finance","savings","banking","银行","交易所"],"store":["shop","mall","supermarket","商店","超市","店铺","商家"],"store-2":["shop","mall","supermarket","商店","超市","店铺","商家"],"store-3":["shop","mall","supermarket","商店","超市","店铺","商家"],"hospital":["medical","health","医院"],"ancient-gate":["historical","genre","scenic","trip","travel","旅行","旅游","城门","古代","历史","景区"],"ancient-pavilion":["historical","genre","scenic","trip","travel","旅行","旅游","凉亭","古代","历史","景区"]},"Business":{"mail":["envelope","email","inbox","信封","邮箱","邮件","收件箱"],"mail-open":["envelope","email","inbox","信封","邮箱","邮件","收件箱"],"mail-send":["envelope","email","inbox","信封","邮箱","邮件","发送","发件箱"],"mail-unread":["envelope","email","inbox","信封","邮箱","邮件","未读"],"mail-add":["envelope","email","inbox","add","信封","邮箱","邮件","新增","添加"],"mail-check":["envelope","email","inbox","read","信封","邮箱","邮件","已读"],"mail-close":["envelope","email","inbox","failed","x","信封","邮箱","邮件","失败"],"mail-download":["envelope","email","inbox","download","信封","邮箱","邮件","下载"],"mail-forbid":["envelope","email","inbox","privacy","信封","邮箱","邮件","禁止"],"mail-lock":["envelope","email","inbox","lock","信封","邮箱","邮件","加密"],"mail-settings":["envelope","email","inbox","settings","信封","邮箱","邮件","设置"],"mail-star":["envelope","email","inbox","favorite","信封","邮箱","邮件","收藏","喜欢"],"mail-volume":["envelope","email","inbox","promotional email","email campaign","subscription","信封","邮箱","邮件","收件箱","推广","订阅"],"inbox":["收件箱"],"inbox-archive":["收件箱","归档","收纳"],"inbox-unarchive":["unzip","unpack","extract","收件箱","取消归档","还原","解压缩"],"cloud":["weather","云端"],"cloud-off":["offline-mode","connection-fail","slash","weather","云端","断网","无信号","连接失败"],"attachment":["annex","paperclip","附件","曲别针"],"profile":["id","档案","资料","身份证","证件"],"archive":["box","收纳","归档","存档","盒子","纸箱"],"archive-drawer":["night table","收纳","抽屉","归档","存档","床头柜"],"at":["@","mention","提到","在"],"award":["medal","achievement","badge","成就","奖牌","金牌","勋章"],"medal":["award","achievement","badge","成就","奖牌","金牌","勋章"],"medal-2":["award","achievement","badge","成就","奖牌","金牌","勋章"],"bar-chart":["statistics","rhythm","柱状图","统计","韵律","节奏"],"bar-chart-horizontal":["statistics","rhythm","柱状图","统计","韵律","节奏"],"bar-chart-2":["statistics","rhythm","柱状图","统计","排行","节奏"],"bar-chart-box":["statistics","rhythm","柱状图","统计","节奏"],"bar-chart-grouped":["statistics","rhythm","柱状图","统计","分组"],"bubble-chart":["data","analysis","statistics","气泡图","统计"],"pie-chart":["data","analysis","饼图","饼状图","数据","分析"],"pie-chart-2":["data","analysis","饼图","饼状图","数据","分析"],"pie-chart-box":["data","analysis","饼图","饼状图","数据","分析"],"donut-chart":["data","analysis","环形图","数据","分析"],"line-chart":["data","analysis","stats","折线图","数据","分析"],"bookmark":["tag","书签","标记"],"bookmark-2":["tag","书签","标记"],"bookmark-3":["tag","书签","标记","荣誉"],"briefcase":["bag","baggage","公文包","行李箱","旅行箱","皮包"],"briefcase-2":["bag","baggage","公文包","行李箱","旅行箱","皮包"],"briefcase-3":["bag","baggage","公文包","行李箱","旅行箱","皮包"],"briefcase-4":["bag","baggage","公文包","行李箱","旅行箱","皮包"],"briefcase-5":["bag","baggage","公文包","行李箱","旅行箱","皮包"],"calculator":["计算器","计算机"],"calendar":["date","plan","schedule","agenda","日历","日期","月份","计划","日程","时间表"],"calendar-2":["date","plan","schedule","agenda","日历","日期","月份","计划","日程","时间表"],"calendar-event":["date","plan","schedule","agenda","日历","日期","月份","计划","日程","时间表"],"calendar-todo":["date","plan","schedule","agenda","日历","日期","月份","计划","日程","时间表"],"calendar-check":["date","plan","schedule","agenda","check-in","punch","日历","日期","月份","计划","日程","时间表","签到","打卡"],"customer-service":["headset","客服","售后","耳机","耳麦"],"customer-service-2":["headset","客服","售后","耳机","耳麦"],"flag":["banner","pin","旗帜","旗子","国旗","标记"],"flag-2":["banner","pin","旗帜","旗子","国旗","标记"],"global":["earth","union","world","language","地球","联合","世界","全球","语言"],"honour":["honor","glory","锦旗","荣誉","荣耀","军衔"],"links":["connection","address","联系","链接","地址"],"printer":["打印机"],"printer-cloud":["打印机","云打印"],"record-mail":["voice mail","tape","录音","留言","语音信箱","磁带"],"reply":["forward","回复","答复","留言","转发"],"send-plane":["发送","纸飞机"],"send-plane-2":["发送","纸飞机"],"projector":["projection","meeting","投影仪","会议室"],"projector-2":["projection","meeting","投影仪","会议室","极米"],"slideshow":["presentation","meeting","PPT","keynote","投影","放映","演示","演讲","幻灯片","会议室"],"slideshow-2":["presentation","meeting","投影","放映","演示","演讲","幻灯片","会议室"],"slideshow-3":["presentation","meeting","投影","放映","演示","演讲","视频会议","幻灯片","会议室"],"slideshow-4":["presentation","meeting","投影","放映","演示","演讲","可视对讲","幻灯片","会议室"],"window":["browser","program","web","窗口","浏览器","程序","网站"],"window-2":["browser","program","web","窗口","浏览器","程序","网站"],"stack":["layers","图层","叠加","堆栈"],"service":["heart","handshake","cooperation","服务","握手","心","合作"],"registered":["注册","商标"],"trademark":["注册","商标"],"advertisement":["ad","广告","推广"],"copyright":["版权"],"creative-commons":["知识共享"],"creative-commons-by":["attribution","copyright","版权","知识共享","署名"],"creative-commons-nc":["noncommercial","copyright","版权","知识共享","非商业用途"],"creative-commons-nd":["no derivative works","copyright","版权","知识共享","禁止演绎"],"creative-commons-sa":["share alike","copyright","版权","知识共享","相同方式共享"],"creative-commons-zero":["cc0","copyright","版权","知识共享"]},"Communication":{"chat-1":["message","reply","comment","消息","聊天","回复","评论"],"chat-2":["message","reply","comment","消息","聊天","回复","评论"],"chat-3":["message","reply","comment","消息","聊天","回复","评论"],"chat-4":["message","reply","comment","消息","聊天","回复","评论"],"message":["chat","comment","reply","消息","聊天","回复","评论"],"message-2":["chat","reply","comment","消息","聊天","回复","评论"],"message-3":["chat","reply","comment","消息","聊天","回复","评论"],"chat-check":["message","reply","comment","消息","聊天","回复","评论","已阅"],"chat-delete":["message","comment","消息","聊天","回复","评论","清除","删除"],"chat-forward":["message","comment","消息","聊天","转发"],"chat-upload":["message","comment","消息","聊天","上传"],"chat-download":["message","comment","消息","下载"],"chat-new":["message","reply","comment","消息","聊天","回复","评论"],"chat-settings":["message","comment","消息","聊天","回复","评论","设置"],"chat-smile":["message","reply","comment","消息","聊天","回复","评论"],"chat-smile-2":["message","reply","comment","消息","聊天","回复","评论"],"chat-smile-3":["message","reply","comment","消息","聊天","回复","评论"],"chat-heart":["message","reply","comment","消息","聊天","回复","评论","心","点赞","收藏"],"chat-off":["message","reply","comment","slash","消息","聊天","回复","评论","禁止","关闭"],"feedback":["message","comment","消息","聊天","回复","评论","反馈"],"discuss":["message","reply","comment","消息","聊天","回复","评论","讨论","群聊"],"question-answer":["message","reply","comment","消息","聊天","回复","评论","讨论","群聊"],"questionnaire":["message","comment","help","消息","聊天","回复","评论","讨论","调查问卷","帮助"],"video-chat":["message","comment","消息","视频聊天"],"chat-voice":["message","comment","消息","语音消息"],"chat-quote":["message","reply","comment","消息","引用回复"],"chat-follow-up":["message","reply","comment","消息","+1","跟帖"],"chat-poll":["message","vote","questionnaire","消息","投票","问卷调查"],"chat-history":["message","历史消息","消息记录"],"chat-private":["message","私密消息","密聊"]},"Design":{"pencil":["edit","铅笔","编辑"],"edit":["pencil","铅笔","编辑"],"edit-2":["pencil","铅笔","编辑"],"ball-pen":["圆珠笔"],"quill-pen":["羽毛笔"],"mark-pen":["马克笔"],"markup":["标记","马克"],"pen-nib":["钢笔","笔尖"],"edit-box":["编辑"],"edit-circle":["编辑"],"sip":["吸管","取色器"],"brush":["笔刷","画笔","刷子"],"brush-2":["刷子"],"brush-3":["刷子"],"brush-4":["刷子"],"paint-brush":["填色","填充","刷子"],"contrast":["brightness","tonalit","对比度","亮度","色调"],"contrast-2":["moon","dark","brightness","tonalit","月亮","夜间","对比度","亮度","色调"],"drop":["water","blur","模糊","水","滴"],"blur-off":["water","drop","slash","模糊","水","滴","禁止","关闭"],"contrast-drop":["water","brightness","tonalit","水","对比度","亮度","色调","滴"],"contrast-drop-2":["water","brightness","tonalit","水","对比度","亮度","色调","滴"],"compasses":["圆规"],"compasses-2":["圆规"],"scissors":["剪刀","裁剪"],"scissors-cut":["剪刀","裁剪"],"scissors-2":["剪刀","裁剪","截屏"],"slice":["knife","切图","切片","刀"],"eraser":["remove formatting","橡皮","擦除","清除格式"],"ruler":["尺子"],"ruler-2":["尺子"],"pencil-ruler":["design","铅笔","尺子","文具","设计"],"pencil-ruler-2":["design","铅笔","尺子","文具","设计"],"t-box":["文字","字体","字号"],"input-method":["输入法","文字"],"artboard":["grid","crop","画板","裁切"],"artboard-2":["画板"],"crop":["裁切"],"crop-2":["裁切"],"screenshot":["capture","屏幕截图","截屏"],"screenshot-2":["capture","屏幕截图","截屏"],"drag-move":["arrow","拖拽","移动","箭头"],"drag-move-2":["arrow","拖拽","移动","箭头"],"focus":["aim","target","焦点","聚焦","目标","靶心"],"focus-2":["aim","target","bullseye","焦点","聚焦","目标","靶心"],"focus-3":["aim","target","bullseye","焦点","聚焦","目标","靶心"],"paint":["填色","填充","油漆桶"],"palette":["调色盘","色板"],"pantone":["色板","潘通色","色号"],"shape":["border","形状","描边","边框"],"shape-2":["border","形状","描边","边框"],"magic":["fantasy","magic stick","beautify","魔法棒","美化","幻想","魔幻"],"anticlockwise":["rotate","left","左翻转","左旋转"],"anticlockwise-2":["rotate","left","左翻转","左旋转"],"clockwise":["rotate","right","右翻转","右旋转"],"clockwise-2":["rotate","right","右翻转","右旋转"],"hammer":["锤子"],"tools":["settings","工具","设置"],"drag-drop":["drag and drop","mouse","拖拽","鼠标"],"table":["表格"],"table-alt":["表格"],"layout":["布局"],"layout-2":["collage","布局","拼贴画"],"layout-3":["collage","布局","拼贴画"],"layout-4":["collage","布局","拼贴画"],"layout-5":["collage","布局","拼贴画"],"layout-6":["collage","布局","拼贴画"],"layout-column":["左右布局"],"layout-row":["上下布局"],"layout-top":["顶部布局","顶部导航"],"layout-right":["右侧布局","右侧导航"],"layout-bottom":["底部布局","底部导航"],"layout-left":["左侧布局","左侧导航"],"layout-top-2":["顶部布局","顶部导航"],"layout-right-2":["右侧布局","右侧导航"],"layout-bottom-2":["底部布局","底部导航"],"layout-left-2":["左侧布局","左侧导航"],"layout-grid":["卡片布局","网格"],"layout-masonry":["瀑布流布局","拼贴画"],"grid":["table","网格","表格"]},"Development":{"bug":["虫子"],"bug-2":["虫子"],"code":["代码","编程"],"code-s":["代码","编程"],"code-s-slash":["代码","编程"],"code-box":["代码","编程"],"terminal-box":["code","command line","终端","代码","命令行"],"terminal":["code","command line","终端","代码","命令行"],"terminal-window":["code","command line","终端","代码","命令行"],"parentheses":["code","math","小括号"],"brackets":["code","math","中括号"],"braces":["code","math","大括号","花括号"],"command":["apple key","花键","苹果键"],"cursor":["mouse","指针","鼠标"],"git-commit":["node","提交"],"git-pull-request":["合并申请"],"git-merge":["合并"],"git-branch":["分支"],"git-repository":["仓库"],"git-repository-commits":["仓库","提交"],"git-repository-private":["私密仓库","私人仓库"],"html5":["html","h5"],"css3":["css"]},"Device":{"tv":["电视"],"tv-2":["monitor","电视","显示器"],"computer":["monitor","电脑","显示器"],"mac":["monitor","显示器"],"macbook":["laptop","笔记本"],"cellphone":["手机","电话"],"smartphone":["mobile","手机"],"tablet":["平板电脑"],"device":["设备"],"phone":["电话"],"database":["storage","数据库","存储"],"database-2":["storage","数据库","存储"],"server":["服务器"],"hard-drive":["disc","storage","硬盘","存储"],"hard-drive-2":["disc","server","storage","硬盘","服务器","存储"],"install":["安装"],"uninstall":["卸载"],"save":["floppy","保存","软盘"],"save-2":["floppy","保存","软盘"],"save-3":["floppy","保存","软盘"],"sd-card":["内存卡"],"sd-card-mini":["内存卡"],"sim-card":["电话卡"],"sim-card-2":["电话卡"],"dual-sim-1":["sim card","电话卡","卡槽","双卡双待"],"dual-sim-2":["sim card","电话卡","卡槽","双卡双待"],"u-disk":["U盘","优盘"],"battery":["电池"],"battery-charge":["电池","充电"],"battery-low":["电池","低电量"],"battery-2":["电池"],"battery-2-charge":["电池","充电"],"battery-saver":["电池","省电模式"],"battery-share":["电池共享","共享电量"],"cast":["mirroring","投屏","无线","广播"],"airplay":["mirroring","投屏","无线"],"cpu":["中央处理器"],"gradienter":["水平仪"],"keyboard":["input","键盘","输入"],"keyboard-box":["input","键盘","输入"],"mouse":["鼠标"],"sensor":["capacitor","传感器","电容器"],"router":["wifi","signal tower","radio","station","路由器","信号塔","广播","基站","流量"],"radar":["satellite receiver","雷达","卫星接收器","锅"],"gamepad":["consoles","controller","游戏手柄"],"remote-control":["controller","遥控器"],"remote-control-2":["controller","遥控器"],"device-recover":["恢复出厂设置"],"hotspot":["手机热点"],"phone-find":["找回手机"],"phone-lock":["锁定手机"],"rotate-lock":["锁定旋转屏幕"],"restart":["reload","refresh","重启"],"shut-down":["power off","关机"],"fingerprint":["指纹"],"fingerprint-2":["指纹"],"barcode":["scan","扫码","条形码","条码"],"barcode-box":["scan","扫码","条形码","条码"],"qr-code":["二维码"],"qr-scan":["二维码","扫描"],"qr-scan-2":["二维码","扫描"],"scan":["扫描"],"scan-2":["扫描"],"rss":["feed","subscribe","订阅"],"gps":["signal","定位","信号"],"base-station":["wifi","signal tower","router","cast","基站","信号塔","路由器","广播","流量"],"bluetooth":["wireless","蓝牙","无线"],"bluetooth-connect":["wireless","蓝牙","连接","无线"],"wifi":["无线网"],"wifi-off":["slash","offline","connection-fail","无线网","关闭","断网","链接失败"],"signal-wifi":["cellular","strength","无线网","信号"],"signal-wifi-1":["cellular","strength","无线网","信号"],"signal-wifi-2":["cellular","strength","无线网","信号"],"signal-wifi-3":["cellular","strength","无线网","信号"],"signal-wifi-error":["cellular","offline","connection-fail","无线网","断网","链接失败","无信号"],"signal-wifi-off":["cellular","slash","offline","connection-fail","无线网","关闭","断网","链接失败"],"wireless-charging":["power","flash","无线充电","闪充"]},"Document":{"file":["new","paper","文件","文档","新建"],"file-2":["new","paper","文件","文档","新建"],"file-3":["new","paper","文件","文档","新建"],"file-4":["new","paper","文件","文档","新建"],"sticky-note":["new","paper","文件","文档","新建","便签纸","便利贴"],"sticky-note-2":["new","paper","文件","文档","新建","便签纸","便利贴"],"file-edit":["文件","文档","编辑"],"file-paper":["文件","文档","纸","谱"],"file-paper-2":["文件","文档","纸","谱"],"file-text":["文件","文档","文本"],"file-list":["清单","列表"],"file-list-2":["清单","列表"],"file-list-3":["newspaper","清单","列表","报纸"],"bill":["账单"],"file-copy":["duplicate","clone","复制","克隆"],"file-copy-2":["duplicate","clone","复制","克隆"],"clipboard":["copy","复制","剪切板"],"survey":["research","questionnaire","调查","问卷","调研"],"article":["newspaper","文章","报纸"],"newspaper":["报纸"],"file-zip":["7z","rar","压缩包"],"file-mark":["文件","文档","标记"],"task":["todo","任务","待办"],"todo":["待办"],"book":["read","dictionary","booklet","书","阅读","字典","小册子"],"book-mark":["read","dictionary","booklet","书","阅读","字典","小册子","书签"],"book-2":["read","dictionary","booklet","书","阅读","字典","小册子"],"book-3":["read","dictionary","booklet","书","阅读","字典","小册子"],"book-open":["read","booklet","magazine","书","阅读","小册子","杂志"],"book-read":["booklet","magazine","书","阅读","小册子","杂志"],"contacts-book":["通讯录","联系人"],"contacts-book-2":["通讯录","联系人"],"contacts-book-upload":["upload","通讯录","联系人","上传"],"booklet":["notebook","手册","笔记本","小册子"],"file-code":["config","文件","文档","代码","脚本","配置文件"],"file-pdf":["文件","文档"],"file-word":["文档"],"file-ppt":["文件","文档"],"file-excel":["文档","表单"],"file-word-2":["文档"],"file-ppt-2":["文件","文档"],"file-excel-2":["文档","表单"],"file-hwp":["文件","文档","hangul word processor"],"keynote":["演示文稿","幻灯片","讲演"],"numbers":["表格"],"pages":["文稿"],"file-search":["文件","文档","搜索"],"file-add":["new","文件","文档","新建"],"file-reduce":["文件","文档","减"],"file-settings":["文件","文档","设置"],"file-upload":["文件","文档","上传"],"file-transfer":["文件","文档","传输"],"file-download":["文件","文档","下载"],"file-lock":["文件","文档","锁"],"file-chart":["report","文件","文档","柱状图","报表"],"file-chart-2":["report","文件","文档","饼图","报表"],"file-music":["文件","文档","音乐"],"file-gif":["文件","文档","动图"],"file-forbid":["文件","文档","禁用"],"file-info":["文件","文档","信息"],"file-warning":["alert","文件","文档","警告","提醒"],"file-unknow":["文件","文档","未知","问号"],"file-user":["文件","文档","用户"],"file-shield":["protected","secured","文件","文档","盾牌","保护","安全"],"file-shield-2":["protected","secured","文件","文档","盾牌","保护","安全"],"file-damage":["breakdown","broken","文件","文档","损坏","破损","破裂"],"file-history":["record","文件","文档","记录","历史"],"file-shred":["shredder","shred","destroy","cut","文档","销毁","碎纸机","破裂","粉碎"],"file-cloud":["文件","文档","云"],"folder":["directory","file","文件夹","目录","文档"],"folder-2":["directory","file","文件夹","目录","文档"],"folder-3":["directory","file","文件夹","目录","文档"],"folder-4":["directory","file","文件夹","目录","文档"],"folder-5":["directory","file","文件夹","目录","文档"],"folders":["directory","file","文件夹","目录","文档","批量"],"folder-add":["directory","file","文件夹","目录","文档","添加"],"folder-reduce":["directory","file","文件夹","目录","文档","减"],"folder-settings":["directory","file","文件夹","目录","文档","设置"],"folder-upload":["directory","file","文件夹","目录","文档","上传"],"folder-transfer":["directory","file","文件夹","目录","文档","传输"],"folder-download":["directory","file","文件夹","目录","文档","下载"],"folder-lock":["directory","file","文件夹","目录","文档","锁"],"folder-chart":["report","文件夹","目录","文档","柱状图","报表"],"folder-chart-2":["report","文件夹","目录","文档","饼图","报表"],"folder-music":["directory","file","文件夹","目录","文档","音乐"],"folder-forbid":["directory","file","文件夹","目录","文档","禁用"],"folder-info":["directory","file","文件夹","目录","文档","信息"],"folder-warning":["alert","directory","file","文件夹","目录","文档","警告","提醒"],"folder-unknow":["directory","file","文件夹","目录","文档","未知"],"folder-user":["directory","file","文件夹","目录","文档","用户"],"folder-shield":["directory","file","protected","secured","文件夹","目录","文档","保护","盾牌","安全"],"folder-shield-2":["directory","file","protected","secured","文件夹","目录","文档","保护","盾牌","安全"],"folder-shared":["directory","file","文件夹","目录","文档","分享"],"folder-received":["directory","file","文件夹","目录","文档","接收"],"folder-open":["directory","file","文件夹","目录","文档","打开"],"folder-keyhole":["directory","encryption","file","文件夹","目录","文档","打开","加密文档"],"folder-zip":["directory","file","文件夹","目录","文档","打开","压缩"],"folder-history":["directory","file","record","文件夹","目录","文档","记录","历史"],"markdown":["arrow","箭头","下"]},"Editor":{"bold":["加粗"],"italic":["斜体"],"heading":["标题"],"text":["字体"],"font-color":["文字色"],"font-size":["字号","字体大小"],"font-size-2":["字号","字体大小"],"underline":["下划线"],"emphasis":["着重号"],"emphasis-cn":["着重号"],"strikethrough":["remove formatting","删除线"],"strikethrough-2":["remove formatting","删除线"],"format-clear":["remove formatting","清除格式"],"align-left":["左对齐"],"align-center":["居中对齐"],"align-right":["右对齐"],"align-justify":["排列对齐"],"align-top":["顶部对齐"],"align-vertically":["垂直对齐"],"align-bottom":["底部对齐"],"list-check":["check list","清单列表"],"list-check-2":["check list","清单列表"],"list-ordered":["number list","有序列表"],"list-unordered":["bullet list","无序列表"],"indent-decrease":["indent more","缩进"],"indent-increase":["indent less","缩进"],"line-height":["行高"],"text-spacing":["字间距"],"text-wrap":["文本换行"],"attachment-2":["annex","paperclip","附件","曲别针"],"link":["connection","address","联系","链接","地址"],"link-unlink":["connection","remove address","去除链接"],"link-m":["connection","address","联系","链接","地址"],"link-unlink-m":["connection","remove address","去除链接"],"separator":["分割线"],"space":["空格"],"page-separator":["insert","分页符","插入"],"code-view":["代码视图"],"double-quotes-l":["left","quotaion marks","双引号"],"double-quotes-r":["right","quotaion marks","双引号"],"single-quotes-l":["left","quotaion marks","单引号"],"single-quotes-r":["right","quotaion marks","单引号"],"table-2":["表格"],"subscript":["角标","下标","脚注"],"subscript-2":["角标","下标","脚注"],"superscript":["角标","上标"],"superscript-2":["角标","上标"],"paragraph":["段落"],"text-direction-l":["文本左对齐"],"text-direction-r":["文本左对齐"],"functions":["功能"],"omega":["Ω","特殊符号"],"hashtag":["#","井号"],"asterisk":["*","星号"],"translate":["translator","翻译"],"translate-2":["translator","翻译"],"a-b":["a/b testing","ab testing","ab测试"],"english-input":["英文输入法"],"pinyin-input":["拼音输入法"],"wubi-input":["五笔输入法"],"input-cursor-move":["移动输入光标"],"number-1":["1","一","数字"],"number-2":["2","二","数字"],"number-3":["3","三","数字"],"number-4":["4","四","数字"],"number-5":["5","五","数字"],"number-6":["6","六","数字"],"number-7":["7","七","数字"],"number-8":["8","八","数字"],"number-9":["9","九","数字"],"number-0":["0","零","数字"],"sort-asc":["ranking","ordering","sorting","ascending","descending","升序排列","排序"],"sort-desc":["ranking","ordering","降序排列","排序"],"bring-forward":["arrange","层级","向上一层"],"send-backward":["arrange","层级","向下一层"],"bring-to-front":["arrange","层级","移到最前面"],"send-to-back":["arrange","层级","移到最后面"]},"Finance":{"wallet":["钱包","卡包"],"wallet-2":["钱包","卡包"],"wallet-3":["钱包","卡包"],"bank-card":["credit","purchase","payment","cc","银行卡","信用卡","购买","消费","支付"],"bank-card-2":["credit","purchase","payment","cc","银行卡","信用卡","购买","消费","支付"],"secure-payment":["credit","purchase","payment","cc","银行卡","信用卡","购买","消费","支付","安全"],"refund":["credit card","repayment","cc","银行卡","信用卡还款"],"refund-2":["credit card","repayment","cc","银行卡","信用卡还款"],"safe":["保险柜","保险箱"],"safe-2":["保险柜","保险箱"],"price-tag":["label","标签","价签"],"price-tag-2":["label","标签","价签"],"price-tag-3":["label","标签","价签"],"ticket":["coupon","票","优惠券","代金券"],"ticket-2":["coupon","票","优惠券","代金券"],"coupon":["ticket","票","优惠券","代金券"],"coupon-2":["ticket","票","优惠券","代金券"],"coupon-3":["ticket","票","优惠券","代金券"],"coupon-4":["优惠券","代金券"],"coupon-5":["优惠券","代金券"],"shopping-bag":["purse","购物袋","购买","消费","商城"],"shopping-bag-2":["购物袋","购买","消费","商城"],"shopping-bag-3":["购物袋","购买","消费","商城"],"shopping-basket":["购物篮","购买","消费","商城"],"shopping-basket-2":["购物篮","购买","消费","商城"],"shopping-cart":["购物车","购买","消费","商城"],"shopping-cart-2":["购物车","购买","消费","商城"],"vip":["会员"],"vip-crown":["king","queen","皇冠","会员","国王","女王","王后"],"vip-crown-2":["king","queen","皇冠","会员","国王","女王","王后"],"vip-diamond":["钻石","会员"],"trophy":["奖品","奖杯","金杯"],"exchange":["swap","交换","换算","兑换"],"exchange-box":["swap","交换","换算","兑换"],"swap":["exchange","交换","换算","兑换"],"swap-box":["exchange","交换","换算","兑换"],"exchange-dollar":["swap","transfer","交换","换算","兑换","美元","转账"],"exchange-cny":["swap","transfer","交换","换算","兑换","人民币","转账"],"exchange-funds":["swap","transfer","交换","换算","兑换","基金","股票","转账"],"increase-decrease":["计算器"],"percent":["百分之","百分比"],"copper-coin":["currency","payment","铜币","硬币","货币","钱","支付"],"copper-diamond":["currency","coins","金币","钻石","货币","钱","支付"],"money-cny-box":["currency","payment","货币","钱","支付","人民币"],"money-cny-circle":["currency","coins","金币","payment","货币","钱","支付","人民币"],"money-dollar-box":["currency","payment","货币","钱","支付","美元"],"money-dollar-circle":["currency","coins","金币","payment","cent","penny","货币","钱","支付","美元","美分","便士"],"money-euro-box":["currency","payment","货币","钱","支付","欧元"],"money-euro-circle":["currency","coins","金币","payment","货币","钱","支付","欧元"],"money-pound-box":["currency","payment","货币","钱","支付","英镑"],"money-pound-circle":["currency","coins","金币","payment","货币","钱","支付","英镑"],"bit-coin":["currency","payment","货币","钱","比特币"],"coin":["金币","硬币"],"coins":["金币","硬币"],"currency":["cash","payment","货币","钱"],"funds":["foundation","stock","基金","股票"],"funds-box":["foundation","stock","基金","股票"],"red-packet":["红包"],"water-flash":["水电费"],"stock":["股票"],"auction":["hammer","拍卖","锤子"],"gift":["present","礼物"],"gift-2":["present","礼物"],"hand-coin":["donate","business","捐赠"],"hand-heart":["help","donate","volunteer","welfare","帮助","爱心","捐赠","志愿者","公益"]},"Logos":{"alipay":["zhifubao","支付宝"],"amazon":["亚马逊"],"android":["applications","安卓","应用"],"angularjs":["angular","programing framework"],"app-store":["applications","苹果应用商店"],"apple":["苹果"],"baidu":["du","claw","百度","爪"],"behance":["behance"],"bilibili":["哔哩哔哩"],"centos":["linux","system","系统"],"chrome":["谷歌浏览器"],"codepen":["代码笔"],"coreos":["linux","system","系统"],"dingding":["钉钉"],"discord":["game","chat"],"disqus":["comments"],"douban":["豆瓣"],"dribbble":["追波"],"drive":["google drive","谷歌云端硬盘"],"dropbox":["多宝箱"],"edge":["microsoft edge","edge浏览器"],"evernote":["印象笔记"],"facebook":["脸书"],"facebook-circle":["脸书"],"facebook-box":["脸书"],"firefox":["火狐浏览器"],"flutter":["google"],"gatsby":["gatsby"],"github":["github"],"gitlab":["gitlab"],"google":["谷歌"],"google-play":["applications","谷歌应用商店"],"honor-of-kings":["game","王者荣耀"],"ie":["internet explorer","浏览器"],"instagram":["照片墙"],"invision":["invision"],"kakao-talk":["kakao talk","chat"],"line":["连我"],"linkedin":["领英"],"linkedin-box":["领英"],"mastercard":["bank card","银行卡"],"mastodon":["mastodon","长毛象"],"medium":["媒体"],"messenger":["facebook","脸书","信使"],"mini-program":["微信小程序"],"netease-cloud-music":["netease cloud music","网易云音乐"],"netflix":["网飞"],"npmjs":["npm","nodejs"],"open-source":["opensource","开源"],"opera":["欧朋浏览器"],"patreon":["donate","money","捐赠","打赏"],"paypal":["贝宝"],"pinterest":["拼趣"],"pixelfed":["photography","pixelfed"],"playstation":["ps"],"product-hunt":["product hunt"],"qq":["penguin","tencent","腾讯","企鹅"],"reactjs":["react","programing framework","facebook"],"reddit":["reddit"],"remixicon":["remix icon","图标"],"safari":["safari浏览器"],"skype":["skype"],"slack":["slack"],"snapchat":["ghost","色拉布","幽灵"],"soundcloud":["声云"],"spectrum":["spectrum"],"spotify":["music","音乐"],"stack-overflow":["stack overflow"],"stackshare":["share","分享","技术栈"],"steam":["game","store"],"switch":["nintendo","任天堂"],"taobao":["淘宝"],"telegram":["telegram"],"trello":["trello"],"tumblr":["汤博乐"],"twitch":["twitch"],"twitter":["推特"],"ubuntu":["linux","system","系统"],"unsplash":["photos"],"visa":["bank card","银行卡"],"vuejs":["vue","programing framework"],"wechat":["微信"],"wechat-2":["微信"],"wechat-pay":["微信支付"],"weibo":["新浪微博"],"whatsapp":["瓦次艾普"],"windows":["microsoft","窗户","微软"],"xbox":["xbox"],"xing":["xing"],"youtube":["优兔","油管"],"zcool":["zcool","站酷"],"zhihu":["知乎"]},"Map":{"map-pin":["location","navigation","地图","坐标","定位","导航","位置"],"map-pin-2":["location","navigation","地图","坐标","定位","导航","位置"],"map-pin-3":["location","navigation","地图","坐标","定位","导航","位置"],"map-pin-4":["location","navigation","地图","坐标","定位","导航","位置"],"map-pin-5":["location","navigation","地图","坐标","定位","导航","位置"],"map-pin-add":["location","navigation","地图","坐标","定位","导航","位置","新增","添加"],"map-pin-range":["location","navigation","地图","坐标","定位","导航","位置","范围"],"map-pin-time":["location","navigation","地图","坐标","定位","导航","位置","时间"],"map-pin-user":["location","navigation","地图","坐标","定位","导航","位置","用户"],"pin-distance":["坐标","距离"],"pushpin":["图钉"],"pushpin-2":["图钉"],"compass":["navigation","safari","direction","discover","指南针","导航","方向","发现","探索"],"compass-2":["navigation","direction","discover","指南针","导航","方向","发现","探索"],"compass-3":["navigation","safari","direction","discover","指南针","导航","方向","发现","探索"],"compass-4":["navigation","direction","discover","指南针","导航","方向","发现","探索"],"compass-discover":["navigation","direction","指南针","导航","方向","发现","探索"],"anchor":["锚"],"china-railway":["中铁","铁路","火车"],"space-ship":["太空飞船"],"rocket":["火箭"],"rocket-2":["space ship","火箭","太空飞船"],"map":["navigation","travel","地图","导航","旅行"],"map-2":["location","navigation","travel","地图","定位","导航","旅行"],"treasure-map":["thriller","adventure","地图","藏宝图"],"road-map":["navigation","travel","地图","导航","旅行"],"earth":["global","union","world","language","地球","全球","联合","世界","语言"],"globe":["earth","地球仪"],"parking":["停车场"],"parking-box":["停车场"],"route":["path","路线"],"guide":["path","指引","路线"],"gas-station":["加气站","加油站"],"charging-pile":["充电桩"],"charging-pile-2":["充电桩"],"car":["汽车"],"car-washing":["汽车","洗车"],"roadster":["car","汽车","跑车"],"taxi":["car","出租车","汽车"],"taxi-wifi":["car","出租车","汽车"],"police-car":["汽车","警车"],"bus":["大巴","巴士"],"bus-2":["大巴","巴士"],"bus-wifi":["大巴","巴士"],"truck":["van","delivery","卡车","货车","运输"],"train":["火车"],"train-wifi":["火车"],"subway":["地铁"],"subway-wifi":["地铁"],"flight-takeoff":["airplane","plane","origin","起飞","出发","始发","起点","飞机"],"flight-land":["airplane","plane","destination","着陆","到达","抵达","终点","飞机"],"plane":["fight","飞机","航班"],"sailboat":["帆船"],"ship":["轮船","航海","海运"],"ship-2":["轮船"],"bike":["自行车"],"e-bike":["take out","takeaway","电动车","外卖"],"e-bike-2":["take out","takeaway","电动车","外卖"],"takeaway":["take out","takeaway","电动车","外卖"],"motorbike":["摩托车"],"caravan":["房车"],"walk":["步行"],"run":["奔跑","跑步"],"riding":["bike","骑行","自行车"],"barricade":["路障"],"footprint":["脚印","足迹"],"traffic-light":["交通","信号灯"],"signal-tower":["base station","antenna","信号塔","基站","天线"],"restaurant":["餐厅","饭店"],"restaurant-2":["餐厅","饭店"],"cup":["tea","coffee","杯子","咖啡","茶"],"goblet":["cup","wine glass","高脚杯","酒杯"],"hotel-bed":["酒店","床"],"navigation":["gps","导航"],"oil":["汽油","机油"],"direction":["right","方向","右转"],"steering":["drive","方向盘","驾车"],"steering-2":["drive","方向盘","驾车"],"lifebuoy":["life ring","救生圈"],"passport":["passports","护照"],"suitcase":["travel","旅行","行李箱"],"suitcase-2":["travel","旅行","行李箱","拉杆箱"],"suitcase-3":["travel","旅行","boarding case","行李箱","拉杆箱","登机箱"],"luggage-deposit":["consignment","行李箱","行李寄存","托运"],"luggage-cart":["行李车"]},"Media":{"image":["picture","photo","图片","照片"],"image-2":["picture","photo","图片","照片"],"image-add":["picture","photo","图片","照片","添加"],"landscape":["picture","image","photo","图片","照片"],"gallery":["picture","image","图片","相册"],"gallery-upload":["picture","image","图片","相册","上传"],"video":["视频"],"movie":["film","video","电影","硬盘","视频"],"movie-2":["film","video","电影","硬盘","视频"],"film":["movie","video","影片","电影","视频"],"clapperboard":["movie","film","场记板","电影"],"vidicon":["video","camera","摄像机","摄影机","视频"],"vidicon-2":["camera","摄像机","摄影机"],"live":["video","camera","摄像机","摄影机","视频","直播"],"video-add":["camera","摄像机","摄影机","视频","添加"],"video-upload":["camera","摄像机","摄影机","视频","上传"],"video-download":["camera","摄像机","摄影机","视频","下载"],"dv":["vidicon","camera","摄像机","摄影机"],"camera":["photo","照相机","拍照","照片"],"camera-off":["photo","slash","照相机","拍照","照片","禁止","关闭"],"camera-2":["photo","照相机","拍照","照片"],"camera-3":["photo","照相机","拍照","照片"],"camera-lens":["aperture","photo","照相机","拍照","照片","朋友圈"],"camera-switch":["照相机","拍照","翻转"],"polaroid":["camera","相机","宝丽来"],"polaroid-2":["camera","相机","宝丽来"],"phone-camera":["手机相机","手机摄像头"],"webcam":["摄像头"],"mv":["music video","音乐"],"music":["音乐"],"music-2":["音乐"],"disc":["music","album","音乐","唱片"],"album":["music","唱片","音乐"],"dvd":["cd","dvd","record","光盘","刻录"],"headphone":["music","headset","耳机","音乐"],"radio":["收音机","电台"],"radio-2":["收音机","电台"],"tape":["录音","磁带"],"mic":["record","voice","话筒","语音","录音","声音"],"mic-2":["record","voice","话筒","语音","录音","声音"],"mic-off":["record","voice","slash","关闭话筒","关闭语音","录音","关闭声音","静音","禁止"],"volume-down":["trumpet","sound","speaker","音量低","喇叭","声音","扬声器"],"volume-mute":["trumpet","sound","off","音量低","喇叭","声音","静音"],"volume-up":["trumpet","sound","speaker","音量高","喇叭","声音","扬声器"],"volume-vibrate":["trumpet","sound","speaker","喇叭","声音","扬声器","震动模式"],"volume-off-vibrate":["trumpet","sound","speaker","静音","喇叭","声音","扬声器","静音模式"],"speaker":["音响"],"speaker-2":["音响"],"speaker-3":["音响"],"surround-sound":["环绕立体声"],"broadcast":["广播"],"notification":["bell","alarm","通知","铃铛","提醒"],"notification-2":["bell","alarm","通知","铃铛","提醒"],"notification-3":["bell","alarm","通知","铃铛","提醒"],"notification-4":["bell","alarm","通知","铃铛","提醒"],"notification-off":["bell","alarm","silent","slash","通知","铃铛","提醒","免打扰","静音","关闭","禁止"],"play-circle":["start","播放","开始"],"pause-circle":["暂停"],"record-circle":["录音"],"stop-circle":["停止"],"eject":["推出"],"play":["start","播放","开始"],"pause":["暂停"],"stop":["停止"],"rewind":["fast","快退"],"speed":["fast","快进"],"skip-back":["上一曲"],"skip-forward":["下一曲"],"play-mini":["播放"],"pause-mini":["暂停"],"stop-mini":["停止"],"rewind-mini":["fast","快退"],"speed-mini":["fast","快进"],"skip-back-mini":["上一曲"],"skip-forward-mini":["下一曲"],"repeat":["循环播放"],"repeat-2":["循环播放"],"repeat-one":["单曲循环"],"order-play":["顺序播放"],"shuffle":["随机播放"],"play-list":["播放列表"],"play-list-add":["列表","添加"],"fullscreen":["maximize","全屏","最大化"],"fullscreen-exit":["minimize","退出全屏","最小化"],"equalizer":["sliders","controls","settings","filter","均衡器","控制器","设置","筛选"],"sound-module":["sliders","controls","settings","filter","均衡器","控制器","设置","筛选"],"rhythm":["节奏","韵律"],"voiceprint":["声纹"],"hq":["high quality","高质量","高品质"],"hd":["high definition","高清晰度"],"4k":["high definition","high quality","高清晰度","高品质","超清"],"aspect-ratio":["宽高比","比例"],"picture-in-picture":["画中画","小窗"],"picture-in-picture-2":["画中画","小窗"],"picture-in-picture-exit":["退出画中画","退出小窗"]},"System":{"apps":["应用"],"apps-2":["应用"],"function":["layout","功能","应用","卡片布局"],"dashboard":["仪表盘"],"menu":["navigation","hamburger","导航","菜单","汉堡包"],"menu-2":["navigation","hamburger","导航","菜单","汉堡包"],"menu-3":["navigation","hamburger","导航","菜单","汉堡包"],"menu-4":["navigation","hamburger","导航","菜单","汉堡包"],"menu-5":["navigation","hamburger","导航","菜单","汉堡包"],"menu-add":["navigation","hamburger","导航","菜单","汉堡包","添加"],"more":["ellipsis","更多","省略"],"more-2":["ellipsis","更多","省略"],"heart":["like","love","favorite","心","喜欢","爱","收藏"],"heart-2":["public welfare","like","love","favorite","心","喜欢","爱","收藏"],"heart-add":["like","love","favorite","心","喜欢","爱","收藏"],"star":["favorite","like","mark","星星","星标","喜欢"],"star-s":["favorite","like","mark","星星","星标","喜欢","半星"],"star-half":["favorite","like","mark","星星","星标","喜欢"],"star-half-s":["favorite","like","mark","星星","星标","喜欢","半星"],"settings":["edit","gear","preferences","偏好设置","编辑","齿轮"],"settings-2":["edit","gear","preferences","偏好设置","编辑","齿轮"],"settings-3":["edit","gear","preferences","偏好设置","编辑","齿轮"],"settings-4":["edit","gear","preferences","偏好设置","编辑","齿轮"],"settings-5":["edit","gear","preferences","偏好设置","编辑","齿轮"],"settings-6":["edit","gear","preferences","偏好设置","编辑","齿轮"],"list-settings":["列表","设置"],"forbid":["slash","ban","禁止","禁用"],"forbid-2":["slash","ban","禁止","禁用"],"information":["信息"],"error-warning":["alert","警告","错误"],"question":["help","问号","帮助"],"alert":["提醒","警告"],"spam":["alert","垃圾邮件","警告"],"spam-2":["alert","垃圾邮件","警告"],"spam-3":["alert","垃圾邮件","警告"],"checkbox-blank":["复选框","空"],"checkbox":["复选框"],"checkbox-indeterminate":["复选框"],"add-box":["plus","new","复选框","添加","加号","新增"],"checkbox-blank-circle":["复选框","空"],"checkbox-circle":["复选框"],"indeterminate-circle":["slash","ban","复选框","禁"],"add-circle":["plus","new","复选框","添加","加号","新增"],"close-circle":["cancel","remove","delete","empty","x","关闭","取消","移除","删除","清空"],"radio-button":["单选框"],"checkbox-multiple-blank":["复选框","空"],"checkbox-multiple":["复选框","空"],"check":["对勾"],"check-double":["read","done","double-tick","双对勾","已读"],"close":["cancel","remove","delete","empty","x","关闭","取消","移除","删除","清空"],"add":["plus","new","添加","新增","加号"],"subtract":["减"],"divide":["除以"],"arrow-left-up":["corner","左上"],"arrow-up":["箭头","向上"],"arrow-right-up":["corner","右上"],"arrow-right":["箭头","向右"],"arrow-right-down":["corner","右下"],"arrow-down":["箭头","向下"],"arrow-left-down":["corner","箭头","左下"],"arrow-left":["箭头","向左","返回"],"arrow-up-circle":["箭头","向上"],"arrow-right-circle":["箭头","向右"],"arrow-down-circle":["箭头","向下","下载"],"arrow-left-circle":["箭头","向左","返回"],"arrow-up-s":["箭头","向上"],"arrow-down-s":["箭头","向下"],"arrow-right-s":["箭头","向右"],"arrow-left-s":["箭头","向左","返回"],"arrow-drop-up":["箭头","向上"],"arrow-drop-right":["箭头","向右"],"arrow-drop-down":["箭头","向下"],"arrow-drop-left":["箭头","向左","返回"],"arrow-left-right":["exchange","swap","箭头","左右","交换","换算","兑换"],"arrow-up-down":["exchange","swap","箭头","上下","交换","换算","兑换"],"arrow-go-back":["undo","箭头","返回","撤销","撤回"],"arrow-go-forward":["redo","箭头","重做","撤回"],"download":["下载"],"upload":["上传"],"download-2":["下载"],"upload-2":["上传"],"download-cloud":["下载","云"],"download-cloud-2":["下载","云"],"upload-cloud":["上传","云"],"upload-cloud-2":["上传","云"],"login-box":["sign in","登录"],"logout-box":["sign out","登出","注销"],"logout-box-r":["sign out","登出","注销"],"login-circle":["sign in","登录"],"logout-circle":["sign out","登出","注销"],"logout-circle-r":["sign out","登出","注销"],"refresh":["synchronization","reload","restart","spinner","loader","ajax","update","刷新","同步"],"shield":["safety","protect","盾牌","卫士","安全","防御"],"shield-cross":["safety","protect","盾牌","卫士","安全","防御","闪电"],"shield-flash":["safety","protect","盾牌","卫士","安全","防御"],"shield-star":["safety","protect","盾牌","卫士","安全","防御","星星"],"shield-user":["safety","protect","user protected","guarantor","盾牌","卫士","安全","防御","用户"],"shield-keyhole":["safety","protect","guarantor","盾牌","卫士","安全","防御","钥匙孔"],"delete-back":["backspace","删除","退格"],"delete-back-2":["backspace","删除","退格"],"delete-bin":["trash","remove","ash-bin","garbage","dustbin","uninstall","卸载","删除","垃圾桶"],"delete-bin-2":["trash","remove","ash-bin","garbage","dustbin","uninstall","卸载","删除","垃圾桶"],"delete-bin-3":["trash","remove","ash-bin","garbage","dustbin","uninstall","卸载","删除","垃圾桶"],"delete-bin-4":["trash","remove","ash-bin","garbage","dustbin","uninstall","卸载","删除","垃圾桶"],"delete-bin-5":["trash","remove","ash-bin","garbage","dustbin","uninstall","卸载","删除","垃圾桶"],"delete-bin-6":["trash","remove","ash-bin","garbage","dustbin","uninstall","卸载","删除","垃圾桶"],"delete-bin-7":["trash","remove","ash-bin","garbage","dustbin","uninstall","卸载","删除","垃圾桶"],"lock":["security","password","锁子","安全","密码"],"lock-2":["security","password","锁子","安全","密码"],"lock-password":["security","锁子","安全","密码"],"lock-unlock":["security","password","锁子","安全","密码"],"eye":["watch","view","眼睛","查看"],"eye-off":["slash","眼睛","不可见","关闭","禁止"],"eye-2":["watch","view","眼睛","查看"],"eye-close":["x","闭眼"],"search":["搜索","放大镜"],"search-2":["搜索","放大镜"],"search-eye":["搜索","放大镜","眼睛"],"zoom-in":["放大","放大镜"],"zoom-out":["缩小","放大镜"],"find-replace":["查找","搜索","替换"],"share":["分享","转发"],"share-box":["分享","转发"],"share-circle":["分享","转发"],"share-forward":["分享","转发"],"share-forward-2":["分享","转发"],"share-forward-box":["分享","转发"],"side-bar":["侧边栏"],"time":["clock","时间","时钟","钟表"],"timer":["chronograph","stopwatch","秒表","计时器"],"timer-2":["chronograph","stopwatch","秒表","计时器"],"timer-flash":["chronograph","stopwatch","秒表","计时器","闪电"],"alarm":["闹钟"],"history":["record","recent","time machine","历史记录","最近"],"thumb-down":["dislike","bad","不喜欢","不好"],"thumb-up":["like","good","喜欢","好"],"alarm-warning":["alert","report","police light","告警","举报","警灯"],"notification-badge":["red dot","通知","小红点"],"toggle":["switch","开关","触发器"],"filter":["filtration","筛选","过滤"],"filter-2":["filtration","筛选","过滤"],"filter-3":["filtration","筛选","过滤"],"loader":["loader","spinner","ajax","waiting","delay","加载中","载入中","正在加载"],"loader-2":["loader","spinner","ajax","waiting","delay","加载中","载入中","正在加载"],"loader-3":["loader","spinner","ajax","waiting","delay","加载中","载入中","正在加载"],"loader-4":["loader","spinner","ajax","waiting","delay","加载中","载入中","正在加载"],"loader-5":["loader","spinner","ajax","waiting","delay","加载中","载入中","正在加载"],"external-link":["外链"]},"User&Faces":{"user":["用户"],"user-2":["用户"],"user-3":["用户"],"user-4":["用户"],"user-5":["用户"],"user-6":["用户"],"user-smile":["用户","微笑"],"account-box":["用户","账户"],"account-circle":["用户","账户"],"account-pin-box":["用户","账户"],"account-pin-circle":["用户","账户"],"user-add":["用户","添加","新增"],"user-follow":["关注"],"user-unfollow":["用户","取消关注"],"user-shared":["transfer","用户","我分享的","发送"],"user-shared-2":["transfer","用户","我分享的","发送"],"user-received":["用户","我接收的","收取"],"user-received-2":["用户","我接收的","收取"],"user-location":["用户","定位"],"user-search":["用户","查找"],"user-settings":["admin","用户","设置","管理员"],"user-star":["用户","关注"],"user-heart":["用户","关注"],"admin":["admin","用户","管理员"],"contacts":["联系人"],"group":["team","团队","群组"],"group-2":["team","团队","群组"],"team":["团队","小组","群主"],"user-voice":["用户","录音","演讲"],"emotion":["表情","笑脸"],"emotion-2":["表情","笑脸"],"emotion-happy":["表情","开心"],"emotion-normal":["表情","一般"],"emotion-unhappy":["表情","不开心"],"emotion-laugh":["comedy","happy","表情","大笑","笑脸","开心","喜剧"],"emotion-sad":["drama","tears","悲剧","哭泣","泪"],"skull":["ghost","骷髅","鬼怪"],"skull-2":["ghost","horror","thriller","骷髅","鬼怪","恐惧","恐怖"],"men":["gender","male","man","男人","男性"],"women":["gender","female","woman","女人","女性"],"travesti":["女人","女性"],"genderless":["女人","女性"],"open-arm":["张开双臂"],"body-scan":["gesture recognition","body","扫描身体","体态识别","动作之别","手势识别"],"parent":["patriarch","父母","亲子","家长"],"robot":["mechanic","机器人"],"aliens":["science fiction","ET","外星人","科幻小说"],"bear-smile":["cartoon","anime","cartoon","小熊","微笑","儿童","动画片","卡通","动漫"],"mickey":["cartoon","disney","迪士尼","米老鼠","微笑","儿童","动画片"],"criminal":["horror","thriller","罪犯","犯罪","恐怖"],"ghost":["horror","thriller","鬼怪","恐怖","恐惧"],"ghost-2":["horror","鬼怪","恐怖","恐惧"],"ghost-smile":["鬼怪","笑"],"star-smile":["animation","动画","微笑","星星"],"spy":["incognito mode","detective","secret","间谍","侦探","无痕模式","隐私模式"]},"Weather":{"sun":["light mode","sunny","太阳","白天模式","晴天"],"moon":["dark mode","night","月亮","夜间模式","月牙"],"flashlight":["闪电"],"cloudy":["多云"],"cloudy-2":["多云"],"mist":["雾气","雾霾"],"foggy":["大雾"],"cloud-windy":["风"],"windy":["大风","刮风"],"rainy":["下雨","雨天"],"drizzle":["小雨"],"showers":["中雨"],"heavy-showers":["大雨"],"thunderstorms":["雷暴","雷阵雨"],"hail":["冰雹"],"snowy":["下雪","雪天"],"sun-cloudy":["晴转多云"],"moon-cloudy":["夜间多云"],"tornado":["龙卷风"],"typhoon":["cyclone","tornado","龙卷风","旋风","台风"],"haze":["阴霾","薄雾"],"haze-2":["阴霾","薄雾"],"sun-foggy":["薄雾"],"moon-foggy":["薄雾"],"moon-clear":["夜间模式","夜间无云"],"temp-hot":["temperature","温度","高温","热"],"temp-cold":["temperature","温度","低温","冷"],"celsius":["temperature","温度","摄氏度"],"fahrenheit":["temperature","温度","华氏度"],"fire":["hot","火","热门"],"blaze":["火灾"],"earthquake":["地震"],"flood":["洪水"],"meteor":["流星","陨石"],"rainbow":["彩虹"]},"Others":{"basketball":["sports","运动","篮球"],"bell":["cartoon","anime","doraemon","铃铛","哆啦A梦","卡通","动漫"],"billiards":["sports","运动","台球","8"],"boxing":["sports","运动","拳击"],"cake":["anniversary","蛋糕"],"cake-2":["anniversary","蛋糕"],"cake-3":["蛋糕"],"door-lock":["门锁"],"door-lock-box":["门锁"],"flask":["testing","experimental","experiment","烧瓶","实验","试验"],"football":["sports","运动","足球"],"game":["pac man","游戏","吃豆人"],"handbag":["fashion","时尚","手提包","女包"],"hearts":["romance","爱情","浪漫","心"],"key":["password","钥匙","密码"],"key-2":["password","钥匙","密码"],"knife":["刀"],"knife-blood":["crime","刀","犯罪","血","杀人"],"lightbulb":["energy","creativity","灯泡","能源"],"lightbulb-flash":["energy","creativity","灯泡","能源","闪电"],"outlet":["插座"],"outlet-2":["插座"],"ping-pong":["sports","table tennis","运动","乒乓球"],"plug":["二脚插头"],"plug-2":["三脚插头"],"reserved":["已预定"],"shirt":["clothes","衬衫","衣服"],"sword":["war","刀剑","战争","战斗","玄幻"],"t-shirt":["skin","theme","T恤","皮肤","主题"],"t-shirt-2":["skin","theme","T恤","皮肤","主题"],"t-shirt-air":["dry","T恤","风干","烘干"],"umbrella":["protect","雨伞","保护"],"character-recognition":["ocr","文字识别"],"voice-recognition":["asr","语音识别"],"leaf":["energy","ecology","树叶","节能","环保","语音识别"],"plant":["植物"],"recycle":["recyclable","可回收"],"scales":["balance","称","天平","天秤"],"scales-2":["厨房称"],"fridge":["refrigerator","电冰箱"],"wheelchair":["accessbility","轮椅","可访问性","辅助功能"]}}'; - icons = JSON.parse(icons); - var iconData = ""; - var simpleIcons = ['Editor']; - - Object.keys(icons).forEach(function(key) { - if(key === "Editor") { - iconData = iconData + '

    ' + key + '

    Use <i class="ri-bold"></i> v 2.4.1.

    '; - Object.keys(icons[key]).forEach(function (k) { - iconData += '
    \ - ri-' + k + '
    '; - }); - } else { - iconData = iconData + '

    ' + key + '

    Use <i class="ri-home-line"></i> or <i class="ri-home-fill"></i> v 2.4.1.

    '; - Object.keys(icons[key]).forEach(function (k) { - iconData += '
    \ - ri-' + k + '-line\ -
    \ - ri-' + k + '-fill\ -
    '; - }); - } - iconData += '
    '; - }); - - if(document.getElementById("icons")) - document.getElementById("icons").innerHTML = iconData; diff --git a/src/main/resources/static/assets/js/pages/search-result.init.js b/src/main/resources/static/assets/js/pages/search-result.init.js deleted file mode 100644 index 8eda535..0000000 --- a/src/main/resources/static/assets/js/pages/search-result.init.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: search-result init js -*/ - -// Images Slider menu -var swiper = new Swiper(".images-menu", { - slidesPerView: 'auto', - spaceBetween: 10, - pagination: { - el: ".swiper-pagination", - clickable: true, - } -}); - -// GLightbox Popup -var lightbox = GLightbox({ - selector: '.image-popup', - title: false, -}); - -// loadmore Js -function _toConsumableArray(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - return arr2; - } else { - return Array.from(arr); - } -} - -var loadmore = document.querySelector("#loadmore"); -if (loadmore) { - var currentItems = 3; - loadmore.addEventListener("click", function (e) { - var elementList = [].concat( - _toConsumableArray(document.querySelectorAll(".list .list-element")) - ); - if (elementList) { - for (var i = currentItems; i < currentItems + 3; i++) { - if (elementList[i]) { - elementList[i].style.display = "block"; - } - } - currentItems += 3; - - // Load more button will be hidden after list fully loaded - if (currentItems >= elementList.length) { - event.target.style.display = "none"; - } - } - }); -} \ No newline at end of file diff --git a/src/main/resources/static/assets/js/pages/select2.init.js b/src/main/resources/static/assets/js/pages/select2.init.js deleted file mode 100644 index ae5bea5..0000000 --- a/src/main/resources/static/assets/js/pages/select2.init.js +++ /dev/null @@ -1,93 +0,0 @@ -/* -Template Name: Velzon - Admin & Dashboard Template -Author: Themesbrand -Website: https://Themesbrand.com/ -Contact: Themesbrand@gmail.com -File: select2 init js -*/ - -// In your Javascript (external .js resource or - - - + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/imprimelibros/direcciones/direccionBillingCard.html b/src/main/resources/templates/imprimelibros/direcciones/direccionBillingCard.html new file mode 100644 index 0000000..8e2d70a --- /dev/null +++ b/src/main/resources/templates/imprimelibros/direcciones/direccionBillingCard.html @@ -0,0 +1,31 @@ +
    +
    + + + + + +
    +
    + + + + + + + +
    + +
    + + +
    +
    \ No newline at end of file diff --git a/src/main/resources/templates/imprimelibros/pagos/gestion-pagos.html b/src/main/resources/templates/imprimelibros/pagos/gestion-pagos.html new file mode 100644 index 0000000..5723eb7 --- /dev/null +++ b/src/main/resources/templates/imprimelibros/pagos/gestion-pagos.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + +
    +
    + + +
    + +
    + +
    + + +
    + + + + + + +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/imprimelibros/pagos/tabla-redsys.html b/src/main/resources/templates/imprimelibros/pagos/tabla-redsys.html new file mode 100644 index 0000000..20cee6a --- /dev/null +++ b/src/main/resources/templates/imprimelibros/pagos/tabla-redsys.html @@ -0,0 +1,26 @@ +
    + + + + + + + + + + + + + + + + + + + + + + + +
    IDClientePedidoCantidadDevoluciónFechaAcciones
    +
    \ No newline at end of file diff --git a/src/main/resources/templates/imprimelibros/pagos/tabla-transferencias.html b/src/main/resources/templates/imprimelibros/pagos/tabla-transferencias.html new file mode 100644 index 0000000..5ceb92d --- /dev/null +++ b/src/main/resources/templates/imprimelibros/pagos/tabla-transferencias.html @@ -0,0 +1,30 @@ +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Acciones
    +
    \ No newline at end of file diff --git a/src/main/resources/templates/imprimelibros/partials/sidebar.html b/src/main/resources/templates/imprimelibros/partials/sidebar.html index a1854f0..e811ed6 100644 --- a/src/main/resources/templates/imprimelibros/partials/sidebar.html +++ b/src/main/resources/templates/imprimelibros/partials/sidebar.html @@ -53,6 +53,14 @@ th:text="#{app.sidebar.direcciones}">Mis Direcciones +