A1 = "2019-01-01T00:20:00"
=datevalue(left(A1,10))+TIMEVALUE(mid(A1,12,8))
returns 43466.01389
A1 = "2019-01-01T00:20:00"
=TO_DATE(datevalue(left(a1,10))+TIMEVALUE(mid(a1,12,8)))
{ | |
"firestore": { | |
"rules": "firestore.rules", | |
"indexes": "firestore.indexes.json" | |
}, | |
"emulators": { | |
"firestore": { | |
"port": 8080 | |
} | |
} |
A1 = "2019-01-01T00:20:00"
=datevalue(left(A1,10))+TIMEVALUE(mid(A1,12,8))
returns 43466.01389
A1 = "2019-01-01T00:20:00"
=TO_DATE(datevalue(left(a1,10))+TIMEVALUE(mid(a1,12,8)))
Angular has CanDeactivate
guard, but you have to declare it to each path in the routes configuration.
Valid until angular/angular#11836 will be done.
You can use CanActivateChild
guard to prevent leaving from any component with single declaration.
import {Injectable} from '@angular/core'; | |
import {DateAdapter} from '@angular/material'; | |
import {addDays, addMonths, addYears, format, getDate, getDaysInMonth, getMonth, getYear, parse, setDay, setMonth, toDate} from 'date-fns'; | |
// CONFIG. Use environment or something for a dynamic locale and settings | |
import {es as locale} from 'date-fns/locale'; | |
const WEEK_STARTS_ON = 1; // 0 sunday, 1 monday... | |
export const MAT_DATE_FNS_DATE_FORMATS = { |
/** | |
* Post SquareSpace form entry to TripleSeat Form API. | |
* | |
* 0a. SquareSpace is connected to the SquareSpace form sheet. | |
* 0b. When a user makes a form entry in SquareSpace it is sent to a Google Sheet | |
* | |
* 1. This is a special function that looks for rows in this GoogleSheet that have not been "sent". | |
* 2. This function then sends a POST request with the form data to TripleSeat. | |
* 3. Then this function updates "TripleSeat Status" field to "Sent" in each row that was sent to TripleSeat. | |
* 4. Create a trigger in this project to run this function every 5 minutes, add yourself for script failure notifications |
import { LOCALE_ID } from '@angular/core'; | |
import { async, inject, TestBed } from '@angular/core/testing'; | |
import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core'; | |
import { DateTime, Settings } from 'luxon'; | |
import { LuxonDateAdapter, LUXON_DATE_FORMATS } from './luxon-date-adapter'; | |
// avoid confusion when working with months |
var API_KEY = 'XXXXXXX'; | |
var API_USER = 'anystring'; | |
var mc_list_id = 'XXXXX'; //List ID found in list settings | |
// Using adding members with custom signup forms in this example | |
var mc_base_url = 'https://us14.api.mailchimp.com/3.0/lists/' + mc_list_id + '/members'; | |
//var mc_send = 'https://us14.api.mailchimp.com/3.0/automations/XXXX/emails/XXXXX/queue'; | |
/** | |
* Used to convert email to MD5 hash to allow auto update of user information with MailChimp 3.0 API w/ PUT | |
*/ |
/* | |
0) start node app: | |
$ node app.js | |
1) start stream listening: | |
browse to http://localhost:3000/ | |
2) stop stream listening: | |
browse to http://localhost:3000/stop | |
*/ |
Step 1 : Get the phone number through input from the user.
Step 2 : Pass this phone number to the firebase and receive a callback with verification ID.
Step 3 : Pass on this verification ID through navParams
to the next page where the user will enter the OTP sent to the entered mobile number.
Step 4 : Verify the OTP that is sent with firebase for success()
or failure()
.
phone-verification.html