This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
final Map<String, String> currencyFlags = { | |
"COP": "🇨🇴", | |
"USD": "🇺🇸", | |
"AED": "🇦🇪", | |
"AFN": "🇦🇫", | |
"ALL": "🇦🇱", | |
"AMD": "🇦🇲", | |
"ANG": "🇳🇱", | |
"AOA": "🇦🇴", | |
"ARS": "🇦🇷", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
const result = [] | |
const tables = [...document.querySelectorAll('table')] | |
const quoteRow = cols => ('"' + cols | |
.map(it => it.textContent || '') | |
.join('","') + '"') | |
for (let i = 0, m = tables.length; i < m; i++) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const downloadCsv = (text, filename, encoding = 'text/plain') => { | |
// text/csv | |
const blob = new Blob([csvString], { type: encoding }) | |
const url = window.URL.createObjectURL(blob) | |
const a = document.createElement('a') | |
a.setAttribute('href', url) | |
a.setAttribute('download', filename || 'download.txt') | |
a.style.display = 'none' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const section = document.querySelector('[data-testid="desktop-custom-records"]') | |
const table = section.nextElementSibling.querySelector('table') | |
const headers = [...table.querySelector('thead') | |
.querySelector('tr') | |
.querySelectorAll('th') | |
].map(it => it.innerText) | |
const rows = table.querySelector('tbody').querySelectorAll('tr') | |
const csv = [headers] | |
for (let i = 0; i < rows.length; i++) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://github.com/sequelize/sequelize/issues/8984#issuecomment-738790473 | |
// Here is a workaround to delete new indices after calling sequelize.sync({alter: true}); | |
// Be careful, this will delete all indices of the current database that ends with a number after an underline character (e.g. index_1) | |
const rawTables = await this.sequelize.query("SHOW TABLES") | |
const tables = rawTables[0].map(i => i[Object.keys(rawTables[0][0])[0]]) | |
for (const t of tables) { | |
const rawKeys = await this.sequelize.query(`SHOW INDEX FROM ${t}`) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- https://www.cybertec-postgresql.com/en/index-your-foreign-key/ | |
SELECT c.conrelid::regclass AS "table", | |
/* list of key column names in order */ | |
string_agg(a.attname, ',' ORDER BY x.n) AS columns, | |
pg_catalog.pg_size_pretty( | |
pg_catalog.pg_relation_size(c.conrelid) | |
) AS size, | |
c.conname AS constraint, | |
c.confrelid::regclass AS referenced_table |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- https://stackoverflow.com/a/33293747/717949 | |
-- NOTE: the WHERE condition at the end can be removed for smaller tables | |
-- check for FKs where there is no matching index | |
-- on the referencing side | |
-- or a bad index | |
WITH fk_actions ( code, action ) AS ( | |
VALUES ( 'a', 'error' ), | |
( 'r', 'restrict' ), |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { useRef, useState, useEffect, useCallback } from 'react' | |
import cn from 'classnames' | |
import './EditableText.css' | |
const EditableText = ({ | |
className, | |
inputClassName, | |
as: ElementTag = 'span', | |
value, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const randomInt = (from, to) => Math.floor(Math.random() * (to - from + 1) + from) | |
const rs = (input, random = false) => { | |
const len = input.length | |
const upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('') | |
const lower = 'abcdefghijklmnopqrstuvwxyz'.split('') | |
let lastUpper = -1 | |
let lastLower = -1 | |
let output = '' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copyright 2019 The Chromium Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style license that can be | |
// found in the LICENSE file. | |
// 2022-07-06 Updated to null safety | |
import 'package:flutter/gestures.dart'; | |
import 'package:flutter/material.dart'; | |
/// A widget that takes two children, lays them out along [axis], and allows | |
/// the user to resize them. |
NewerOlder