Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
const person4 = new Person4('Joe', 'Smith') as Person4Ex;
person4.logName(); // joe-smith
//
// Instance Decorators
//
class Person5 {
@curry(2) // <= prototype decorator
@debounce(100) // <= instance decorator
getName() { } // => Throws an error. (╯°□°)╯︵ ┻━┻
@debounce(100) // <= instance decorator
@curry(2) // <= prototype decorator
getName2() { } // => All is well :)
}
//
// Getters and Setters
//
import { once, flow } from 'lodash-decorators';
function alwaysArray(value: string | string[]): string[] {
return Array.isArray(value) ? value : _.isUndefined(value) ? [] : [value];
}
class Person6 {
constructor() { }
onAddingNewItemHandler(editedItem?: IWordProtectionBlackListItem, index: number = -1) {
if (editedItem) {
this.newListItem = editedItem;
}
this.editIndex = index;
this.$modal.show(NEW_WORD_PROTECTION_LIST_MODAL_ID);
}
onDeleteAliasHandler(index: number) {
const newListItemArray = this.value.slice(0);
newListItemArray.splice(index, 1);
this.$emit('input', newListItemArray);
}
@Watch('errors.items.length')
@debounce(200)
async onErrorsChanged() {
await this.$refs.form.validateAndGetErrorsCount();
}
async onAddNewItemHandler() {
if (await this.$refs.form.validateAndGetErrorsCount()) return;
const newListItemArray = this.value.slice(0);
if (this.editIndex > -1) {
// editing existing item
newListItemArray.splice(this.editIndex, 1, this.newListItem);
} else {
newListItemArray.push(this.newListItem);
}
this.$emit('input', newListItemArray);
placeholder: '!example',
};
get isDuplicate() {
// remove "!" and check the rest
const existingWithoutPrefix = this.value.map(alias => alias.replace('!', ''));
const newWithoutPrefix = this.newAlias.replace('!', '');
return (
existingWithoutPrefix.length > 0 &&
newWithoutPrefix &&
existingWithoutPrefix.indexOf(newWithoutPrefix) > -1
);
}
@Watch('newAlias', { immediate: true, deep: true })
@debounce(1)
onCommandChanged(value: string, oldValue: string) {
if (oldValue) {
this.newAlias = value.replace(/ +/g, '');
}
}
onAddAliasHandler() {
if (!this.newAlias) return;
if (this.isDuplicate) return;
const newAliasArray = this.value.slice(0);
newAliasArray.push(this.formatAlias(this.newAlias));
this.$emit('input', newAliasArray);
this.newAlias = '';
}
if (this.isEdit) {
this.newCommand = cloneDeep(this.customCommandToUpdate);
this.newCommand.permission.level = this.customCommandToUpdate.permission.level;
}
}
get isEdit() {
return this.customCommandToUpdate && this.customCommandToUpdate.id;
}
get customCommandToUpdate() {
return this.chatbotApiService.Common.state.customCommandToUpdate;
}
@Watch('newCommand', { immediate: true, deep: true })
@debounce(1)
onCommandChanged(value: ICustomCommand, oldValue: ICustomCommand) {
if (oldValue) {
this.newCommand.command = value.command.replace(/ +/g, '');
}
}
// metadata
commandMetadata: ITextMetadata = {
required: true,
type: EInputType.text,
title: $t('Command'),
placeholder: $t('Enter the text string which will trigger the response'),
tooltip: $t('Enter a word used to trigger a response'),
min: 2,
max: 25,
uuid: $t('Command'),
// if editing existing custom command
if (this.isEdit) {
this.newTimer = cloneDeep(this.timerToUpdate);
}
}
get isEdit() {
return this.timerToUpdate && this.timerToUpdate.id;
}
get timerToUpdate() {
return this.chatbotApiService.Common.state.timerToUpdate;
}
@Watch('newTimer', { immediate: true, deep: true })
@debounce(1)
onCommandChanged(value: IChatbotTimer, oldValue: IChatbotTimer) {
if (oldValue) {
this.newTimer.name = value.name.replace(/ +/g, '');
this.newTimer.message = value.message.replace(/(\r\n|\r|\n)/g, '');
}
}
@Watch('errors.items.length')
@debounce(200)
async onErrorsChanged() {
await this.$refs.form.validateAndGetErrorsCount();
}
async onSaveHandler() {
if (await this.$refs.form.validateAndGetErrorsCount()) return;
@observer
class TreeInput extends Component {
constructor(props) {
super(props);
this.state = {
value: props.value || [],
};
}
componentWillReceiveProps({ value }) {
this.setState({
value: value || [],
});
}
@debounce(50)
handleChangeDebounced() {
// console.log('handleChangeDebounced');
const { onChange } = this.props;
if (onChange) onChange(this.state.value);
}
@autobind
handleSetStateWithDebouncedCallback(value) {
this.setState({ value: uniq(value) }, () => {
this.handleChangeDebounced();
});
}
@autobind
handleCheck(value) {
const { flat = false } = this.props;
@observer
class TreeInput extends Component {
constructor(props) {
super(props);
this.state = {
value: props.value || [],
};
}
componentWillReceiveProps({ value }) {
this.setState({
value: value || [],
});
}
@debounce(50)
handleChangeDebounced() {
// console.log('handleChangeDebounced');
const { onChange } = this.props;
if (onChange) onChange(this.state.value);
}
@autobind
handleChange(value) {
const { flat = false } = this.props;
// чистим от категорий игр
if (!flat) {
value = value.filter(id => id.charAt(0) !== '@');
}
value = uniq(value);
// console.log('handleChange');
max: 450,
},
};
}
get queuePreferences() {
return this.chatbotApiService.Queue.state.queuePreferencesResponse;
}
mounted() {
// if editing existing custom command
this.generalSettings = cloneDeep(this.queuePreferences.settings.general);
}
@Watch('errors.items.length')
@debounce(200)
async onErrorsChanged() {
await this.$refs.form.validateAndGetErrorsCount();
}
onSaveHandler() {
const newPreferences = cloneDeep(this.queuePreferences);
newPreferences.settings.general = this.generalSettings;
this.chatbotApiService.Queue.updateQueuePreferences(newPreferences);
}
}
};
}
//
componentWillReceiveProps(nextProps) {
if (nextProps.value !== this.props.value) {
// Perform some operation
this.setState({ value: nextProps.value });
}
}
shouldComponentUpdate(nextProps, nextState) {
return !isEqual(nextProps.value, this.props.value) || !isEqual(nextState.value, this.state.value);
}
@debounce(100)
onChangeDebounced() {
this.onChange();
}
@autobind
onChange() {
const { value } = this.state;
if (this.props.onChange) this.props.onChange((value || []).filter(a => a));
}
@autobind
onChangeHandler(i, val) {
const value = [...this.state.value];
value[i] = val;
this.setState({
};
}
//
componentWillReceiveProps(nextProps) {
if (nextProps.value !== this.props.value) {
// Perform some operation
this.setState({ value: nextProps.value });
}
}
shouldComponentUpdate(nextProps, nextState) {
return !isEqual(nextProps.value, this.props.value) || !isEqual(nextState.value, this.state.value);
}
@debounce(100)
onChangeDebounced() {
this.onChange();
}
@autobind
onChange() {
const { value } = this.state;
if (this.props.onChange) this.props.onChange((value || []).filter(a => a));
}
@autobind
onChangeHandler(i, val) {
const value = [...this.state.value];
value[i] = val;
this.setState({