Skip to content

Instantly share code, notes, and snippets.

View hiepxanh's full-sized avatar

hiepxanh hiepxanh

View GitHub Profile
@hiepxanh
hiepxanh / gist:73fc9a242661e448d7fa44a06845405d
Last active November 29, 2023 08:45
lazy load file prism
View gist:73fc9a242661e448d7fa44a06845405d
// // this.loadFile('prism.css', 'prism-style');
// // this.loadFile('prism.js', 'prism-script', 'script');
// // https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+c+csharp+cpp+graphql+java+kotlin+markup-templating+php+python+ruby+scss+sql+swift+typescript+yaml&plugins=toolbar+copy-to-clipboard
loadFile(fileName: string, idName: string, mode: 'link' | 'script' = 'link') {
// for angular.json => if style go styles: [];, if script go scripts: []
// {
// "input": "node_modules/quill/dist/quill.core.css",
// "inject": false,
// "bundleName": "quill.core"
@hiepxanh
hiepxanh / index.html
Created April 29, 2023 02:54
angular vite
View index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + TS</title>
</head>
<body>
<div id="app"></div>
@hiepxanh
hiepxanh / gist:9bb1d4845e48826c55c69bd52d75ad6f
Created October 27, 2022 02:26
nestjs-custom-cache.interceptor.ts
View gist:9bb1d4845e48826c55c69bd52d75ad6f
import {
Injectable,
NestInterceptor,
ExecutionContext,
CallHandler,
} from "@nestjs/common";
import { CACHE_MANAGER, Inject } from "@nestjs/common";
import { Cache } from "cache-manager";
import {
from,
@hiepxanh
hiepxanh / datepicker-lazy.ts
Created May 23, 2022 10:26
angular 14 standalone lazyload angular material datepicker
View datepicker-lazy.ts
@ViewChild('datepickerTemplate', { read: ViewContainerRef }) datepickerTemplate!: ViewContainerRef;
constructor(private fb: FormBuilder) {}
async loadComponent() {
const { DatepickerAtom } = await import('../../atoms/datepicker/datepicker.atom');
const componentRef = this.datepickerTemplate.createComponent(DatepickerAtom);
const dobControl = this.optionalForm.get('dob');
if (dobControl) {
componentRef.instance.dob = dobControl;
}
@hiepxanh
hiepxanh / .ts
Created March 7, 2022 02:04
typescript groupBy and more support function on object for javascript
View .ts
declare global {
interface Array<T> {
groupBy(keyField: string): object;
arrayToObject(keyField: string): object;
unique(id: string): T[];
addMoreItemProperty(idKey: string, idValue: string | number, updateData: any): T[];
mergeArrayByProperty(idKey: string, otherArray: T[]): T[];
sortByKey(order?: 'asc' | 'desc', keyName?: string): T[];
}
View gist:197cf86a67cf45394f2eaee744c98f67
# https://github.com/SocialEngine/docker-nginx-spa
# http://www.cicoria.com/forcing-tls-https-on-azure-web-apps-for-linux/
# https://github.com/GaryB432/angular-pwa/blob/master/nginx.conf
charset utf-8;
tcp_nopush on;
tcp_nodelay off;
client_header_timeout 10s;
View gist:63ef84fa01206db711b43e91f182b95d
dokku report reader-web
-----> uname: Linux awread-server 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
-----> memory:
total used free shared buff/cache available
Mem: 1995 395 1021 17 579 1456
Swap: 0 0 0
-----> docker version:
Client: Docker Engine - Community
Version: 20.10.6
API version: 1.41
@hiepxanh
hiepxanh / cloudSettings
Last active January 19, 2021 13:32
Sync Hiep MOON
View cloudSettings
{"lastUpload":"2021-01-19T13:31:01.238Z","extensionVersion":"v3.4.3"}
View gist:f6ff05cf6c549be078f2e2ec6a7fbebe
<div class="popup-sub-advance" [formGroup]="subAdvanceForm">
<div class="popup-title">
Bookable Bussiness
<div class="popup-content">
In order to use <span class="text-bold">Book Bussiness</span>, you agree to pay the <span
class="text-bold">monthly</span> subscription fee of:
<div class="popup-price">
@hiepxanh
hiepxanh / example width
Created June 28, 2020 10:40
EPSON RECEIPT PRINTER XML EXAMPLE
View example width
<epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
<page>
<feed line="1"/>
<line x1="0" y1="30" x2="575" y2="30" style="thin"/>
<text>Single: Thin&#10;</text>
<feed line="1"/>
<line x1="0" y1="90" x2="575" y2="90" style="medium"/>
<text>Single: Medium&#10;</text>
<feed line="1"/>
<line x1="0" y1="150" x2="575" y2="150" style="thick"/>