@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
82 lines • 11.1 kB
JavaScript
import { SimpleChange } from '@angular/core';
/**
* @hidden
*/
export function WatchChanges() {
return (target, key, propDesc) => {
const privateKey = '_' + key.toString();
propDesc = propDesc || {
configurable: true,
enumerable: true,
};
propDesc.get = propDesc.get || (function () { return this[privateKey]; });
const originalSetter = propDesc.set || (function (val) { this[privateKey] = val; });
propDesc.set = function (val) {
const init = this._init;
const oldValue = this[key];
if (val !== oldValue || (typeof val === 'object' && val === oldValue)) {
originalSetter.call(this, val);
if (this.ngOnChanges && !init) {
// in case wacthed prop changes trigger ngOnChanges manually
const changes = {
[key]: new SimpleChange(oldValue, val, false)
};
this.ngOnChanges(changes);
}
}
};
return propDesc;
};
}
export function WatchColumnChanges() {
return (target, key, propDesc) => {
const privateKey = '_' + key.toString();
propDesc = propDesc || {
configurable: true,
enumerable: true,
};
propDesc.get = propDesc.get || (function () { return this[privateKey]; });
const originalSetter = propDesc.set || (function (val) { this[privateKey] = val; });
propDesc.set = function (val) {
const init = this._init;
const oldValue = this[key];
originalSetter.call(this, val);
if (val !== oldValue || (typeof val === 'object' && val === oldValue)) {
if (this.rowIslandAPI.rowIsland) {
this.rowIslandAPI.rowIsland.updateColumnList();
}
}
};
return propDesc;
};
}
export function notifyChanges(repaint = false) {
return (_, key, propDesc) => {
const privateKey = `__${key}`;
propDesc = propDesc || {
enumerable: true,
configurable: true
};
const originalSetter = propDesc ? propDesc.set : null;
propDesc.get = propDesc.get || (function () { return this[privateKey]; });
propDesc.set = function (newValue) {
if (originalSetter) {
originalSetter.call(this, newValue);
if (this.grid) {
this.grid.notifyChanges(repaint);
}
}
else {
if (newValue === this[key]) {
return;
}
this[privateKey] = newValue;
if (this.grid) {
this.grid.notifyChanges(repaint);
}
}
};
return propDesc;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lnbml0ZXVpLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZ3JpZHMvd2F0Y2gtY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RDs7RUFFRTtBQUNGLE1BQU0sVUFBVSxZQUFZO0lBQ3hCLE9BQU8sQ0FBQyxNQUFXLEVBQUUsR0FBVyxFQUFFLFFBQTZCLEVBQUUsRUFBRTtRQUMvRCxNQUFNLFVBQVUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLFFBQVEsR0FBRyxRQUFRLElBQUk7WUFDbkIsWUFBWSxFQUFFLElBQUk7WUFDbEIsVUFBVSxFQUFFLElBQUk7U0FDbkIsQ0FBQztRQUNGLFFBQVEsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQXVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkYsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQXFCLEdBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEcsUUFBUSxDQUFDLEdBQUcsR0FBRyxVQUFxQixHQUFRO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssUUFBUSxDQUFDLEVBQUU7Z0JBQ25FLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLElB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RTtnQkFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztnQkFDNUIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUNwQzthQUNKO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxRQUFlLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpbXBsZUNoYW5nZXMsIFNpbXBsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiogQGhpZGRlblxuKi9cbmV4cG9ydCBmdW5jdGlvbiBXYXRjaENoYW5nZXMoKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIGtleTogc3RyaW5nLCBwcm9wRGVzYz86IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuICAgICAgICBjb25zdCBwcml2YXRlS2V5ID0gJ18nICsga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIHByb3BEZXNjID0gcHJvcERlc2MgfHwge1xuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgcHJvcERlc2MuZ2V0ID0gcHJvcERlc2MuZ2V0IHx8IChmdW5jdGlvbiAodGhpczogYW55KSB7IHJldHVybiB0aGlzW3ByaXZhdGVLZXldOyB9KTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxTZXR0ZXIgPSBwcm9wRGVzYy5zZXQgfHwgKGZ1bmN0aW9uICh0aGlzOiBhbnksIHZhbDogYW55KSB7IHRoaXNbcHJpdmF0ZUtleV0gPSB2YWw7IH0pO1xuXG4gICAgICAgIHByb3BEZXNjLnNldCA9IGZ1bmN0aW9uICh0aGlzOiBhbnksIHZhbDogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBpbml0ID0gdGhpcy5faW5pdDtcbiAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbCAhPT0gb2xkVmFsdWUgfHwgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCA9PT0gb2xkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxTZXR0ZXIuY2FsbCh0aGlzLCB2YWwpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5nT25DaGFuZ2VzICYmICFpbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluIGNhc2Ugd2FjdGhlZCBwcm9wIGNoYW5nZXMgdHJpZ2dlciBuZ09uQ2hhbmdlcyBtYW51YWxseVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2tleV06IG5ldyBTaW1wbGVDaGFuZ2Uob2xkVmFsdWUsIHZhbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBwcm9wRGVzYztcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gV2F0Y2hDb2x1bW5DaGFuZ2VzKCk6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBrZXk6IHN0cmluZywgcHJvcERlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcbiAgICAgICAgY29uc3QgcHJpdmF0ZUtleSA9ICdfJyArIGtleS50b1N0cmluZygpO1xuICAgICAgICBwcm9wRGVzYyA9IHByb3BEZXNjIHx8IHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHByb3BEZXNjLmdldCA9IHByb3BEZXNjLmdldCB8fCAoZnVuY3Rpb24gKHRoaXM6IGFueSkgeyByZXR1cm4gdGhpc1twcml2YXRlS2V5XTsgfSk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU2V0dGVyID0gcHJvcERlc2Muc2V0IHx8IChmdW5jdGlvbiAodGhpczogYW55LCB2YWw6IGFueSkgeyB0aGlzW3ByaXZhdGVLZXldID0gdmFsOyB9KTtcblxuICAgICAgICBwcm9wRGVzYy5zZXQgPSBmdW5jdGlvbiAodGhpczogYW55LCB2YWw6IGFueSkge1xuICAgICAgICAgICAgY29uc3QgaW5pdCA9IHRoaXMuX2luaXQ7XG4gICAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXNba2V5XTtcbiAgICAgICAgICAgIG9yaWdpbmFsU2V0dGVyLmNhbGwodGhpcywgdmFsKTtcbiAgICAgICAgICAgIGlmICh2YWwgIT09IG9sZFZhbHVlIHx8ICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWwgPT09IG9sZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJvd0lzbGFuZEFQSS5yb3dJc2xhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dJc2xhbmRBUEkucm93SXNsYW5kLnVwZGF0ZUNvbHVtbkxpc3QoKTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHByb3BEZXNjO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3RpZnlDaGFuZ2VzKHJlcGFpbnQgPSBmYWxzZSkge1xuICAgIHJldHVybiAoXzogYW55LCBrZXk6IHN0cmluZywgcHJvcERlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcblxuICAgICAgICBjb25zdCBwcml2YXRlS2V5ID0gYF9fJHtrZXl9YDtcblxuICAgICAgICBwcm9wRGVzYyA9IHByb3BEZXNjIHx8IHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfTtcblxuXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU2V0dGVyID0gcHJvcERlc2MgPyBwcm9wRGVzYy5zZXQgOiBudWxsO1xuXG4gICAgICAgIHByb3BEZXNjLmdldCA9IHByb3BEZXNjLmdldCB8fCAoZnVuY3Rpb24odGhpcykgeyByZXR1cm4gdGhpc1twcml2YXRlS2V5XTsgfSk7XG5cbiAgICAgICAgcHJvcERlc2Muc2V0ID0gZnVuY3Rpb24odGhpcywgbmV3VmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChvcmlnaW5hbFNldHRlcikge1xuICAgICAgICAgICAgICAgIG9yaWdpbmFsU2V0dGVyLmNhbGwodGhpcywgbmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLm5vdGlmeUNoYW5nZXMocmVwYWludCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHRoaXNba2V5XSkgeyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICB0aGlzW3ByaXZhdGVLZXldID0gbmV3VmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQubm90aWZ5Q2hhbmdlcyhyZXBhaW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBwcm9wRGVzYyBhcyBhbnk7XG4gICAgfTtcbn1cbiJdfQ==