@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
165 lines • 16.7 kB
JavaScript
/**
* Copyright (c) 2025 Visa, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
import { Directive, HostBinding, Input } from '@angular/core';
import * as i0 from "@angular/core";
export class PaddingDirective {
get hostClasses() {
return [
this.vPT || this.vPT === 0
? this.convertToString(this.vPT).startsWith('-')
? `-v-pt${this.vPT}`
: `v-pt-${this.vPT}`
: null,
this.vPR || this.vPR === 0
? this.convertToString(this.vPR).startsWith('-')
? `-v-pr${this.vPR}`
: `v-pr-${this.vPR}`
: null,
this.vPB || this.vPB === 0
? this.convertToString(this.vPB).startsWith('-')
? `-v-pb${this.vPB}`
: `v-pb-${this.vPB}`
: null,
this.vPL || this.vPL === 0
? this.convertToString(this.vPL).startsWith('-')
? `-v-pl${this.vPL}`
: `v-pl-${this.vPL}`
: null,
this.vPX || this.vPX === 0
? this.convertToString(this.vPX).startsWith('-')
? `-v-px${this.vPX}`
: `v-px-${this.vPX}`
: null,
this.vPY || this.vPY === 0
? this.convertToString(this.vPY).startsWith('-')
? `-v-py${this.vPY}`
: `v-py-${this.vPY}`
: null,
this.vP || this.vP === 0
? this.convertToString(this.vP).startsWith('-')
? `-v-p${this.vP}`
: `v-p-${this.vP}`
: null
].join(' ');
}
convertToString(value) {
return value ? value.toString() : '';
}
/**
* Sets padding-block-start property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vPT() {
return this._vPT;
}
set vPT(value) {
this._vPT = value;
}
/**
* Sets padding-inline-end property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vPR() {
return this._vPR;
}
set vPR(value) {
this._vPR = value;
}
/**
* Sets padding-block-end property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vPB() {
return this._vPB;
}
set vPB(value) {
this._vPB = value;
}
/**
* Sets padding-inline-start property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vPL() {
return this._vPL;
}
set vPL(value) {
this._vPL = value;
}
/**
* Sets padding-inline property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vPX() {
return this._vPX;
}
set vPX(value) {
this._vPX = value;
}
/**
* Sets padding-block property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vPY() {
return this._vPY;
}
set vPY(value) {
this._vPY = value;
}
/**
* Sets padding property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vP() {
return this._vP;
}
set vP(value) {
this._vP = value;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaddingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PaddingDirective, isStandalone: true, selector: "[vPT], [vPR], [vPB], [vPL], [vPX], [vPY], [vP], ", inputs: { vPT: "vPT", vPR: "vPR", vPB: "vPB", vPL: "vPL", vPX: "vPX", vPY: "vPY", vP: "vP" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaddingDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[vPT], ' + // padding block start
'[vPR], ' + // padding inline end
'[vPB], ' + // padding block end
'[vPL], ' + // padding inline start
'[vPX], ' + // padding inline
'[vPY], ' + // padding block
'[vP], ' // all paddings
}]
}], propDecorators: { hostClasses: [{
type: HostBinding,
args: ['class']
}], vPT: [{
type: Input
}], vPR: [{
type: Input
}], vPB: [{
type: Input
}], vPL: [{
type: Input
}], vPX: [{
type: Input
}], vPY: [{
type: Input
}], vP: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvcGFkZGluZy9wYWRkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWM5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7b0JBQzlDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3BCLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLENBQUMsQ0FBQyxJQUFJO1lBQ1IsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO29CQUM5QyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNwQixDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN0QixDQUFDLENBQUMsSUFBSTtZQUNSLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztvQkFDOUMsQ0FBQyxDQUFD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QUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFHRDs7O09BR0c7SUFDSCxJQUNJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsSUFDSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQzsrR0F0SVUsZ0JBQWdCO21HQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBWDVCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFDTixTQUFTLEdBQUcsc0JBQXNCO3dCQUNsQyxTQUFTLEdBQUcscUJBQXFCO3dCQUNqQyxTQUFTLEdBQUcsb0JBQW9CO3dCQUNoQyxTQUFTLEdBQUcsdUJBQXVCO3dCQUNuQyxTQUFTLEdBQUcsaUJBQWlCO3dCQUM3QixTQUFTLEdBQUcsZ0JBQWdCO3dCQUM1QixRQUFRLENBQUMsZUFBZTtpQkFDM0I7OEJBR0ssV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBa0RoQixHQUFHO3NCQUROLEtBQUs7Z0JBY0YsR0FBRztzQkFETixLQUFLO2dCQWNGLEdBQUc7c0JBRE4sS0FBSztnQkFjRixHQUFHO3NCQUROLEtBQUs7Z0JBY0YsR0FBRztzQkFETixLQUFLO2dCQWNGLEdBQUc7c0JBRE4sS0FBSztnQkFjRixFQUFFO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwYWNpbmdQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vbm92YS1saWIuY29uc3RhbnRzJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOlxuICAgICdbdlBUXSwgJyArIC8vIHBhZGRpbmcgYmxvY2sgc3RhcnRcbiAgICAnW3ZQUl0sICcgKyAvLyBwYWRkaW5nIGlubGluZSBlbmRcbiAgICAnW3ZQQl0sICcgKyAvLyBwYWRkaW5nIGJsb2NrIGVuZFxuICAgICdbdlBMXSwgJyArIC8vIHBhZGRpbmcgaW5saW5lIHN0YXJ0XG4gICAgJ1t2UFhdLCAnICsgLy8gcGFkZGluZyBpbmxpbmVcbiAgICAnW3ZQWV0sICcgKyAvLyBwYWRkaW5nIGJsb2NrXG4gICAgJ1t2UF0sICcgLy8gYWxsIHBhZGRpbmdzXG59KVxuZXhwb3J0IGNsYXNzIFBhZGRpbmdEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMudlBUIHx8IHRoaXMudlBUID09PSAwXG4gICAgICAgID8gdGhpcy5jb252ZXJ0VG9TdHJpbmcodGhpcy52UFQpLnN0YXJ0c1dpdGgoJy0nKVxuICAgICAgICAgID8gYC12LXB0JHt0aGlzLnZQVH1gXG4gICAgICAgICAgOiBgdi1wdC0ke3RoaXMudlBUfWBcbiAgICAgICAgOiBudWxsLFxuICAgICAgdGhpcy52UFIgfHwgdGhpcy52UFIgPT09IDBcbiAgICAgICAgPyB0aGlzLmNvbnZlcnRUb1N0cmluZyh0aGlzLnZQUikuc3RhcnRzV2l0aCgnLScpXG4gICAgICAgICAgPyBgLXYtcHIke3RoaXMudlBSfWBcbiAgICAgICAgICA6IGB2LXByLSR7dGhpcy52UFJ9YFxuICAgICAgICA6IG51bGwsXG4gICAgICB0aGlzLnZQQiB8fCB0aGlzLnZQQiA9PT0gMFxuICAgICAgICA/IHRoaXMuY29udmVydFRvU3RyaW5nKHRoaXMudlBCKS5zdGFydHNXaXRoKCctJylcbiAgICAgICAgICA/IGAtdi1wYiR7dGhpcy52UEJ9YFxuICAgICAgICAgIDogYHYtcGItJHt0aGlzLnZQQn1gXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRoaXMudlBMIHx8IHRoaXMudlBMID09PSAwXG4gICAgICAgID8gdGhpcy5jb252ZXJ0VG9TdHJpbmcodGhpcy52UEwpLnN0YXJ0c1dpdGgoJy0nKVxuICAgICAgICAgID8gYC12LXBsJHt0aGlzLnZQTH1gXG4gICAgICAgICAgOiBgdi1wbC0ke3RoaXMudlBMfWBcbiAgICAgICAgOiBudWxsLFxuICAgICAgdGhpcy52UFggfHwgdGhpcy52UFggPT09IDBcbiAgICAgICAgPyB0aGlzLmNvbnZlcnRUb1N0cmluZyh0aGlzLnZQWCkuc3RhcnRzV2l0aCgnLScpXG4gICAgICAgICAgPyBgLXYtcHgke3RoaXMudlBYfWBcbiAgICAgICAgICA6IGB2LXB4LSR7dGhpcy52UFh9YFxuICAgICAgICA6IG51bGwsXG4gICAgICB0aGlzLnZQWSB8fCB0aGlzLnZQWSA9PT0gMFxuICAgICAgICA/IHRoaXMuY29udmVydFRvU3RyaW5nKHRoaXMudlBZKS5zdGFydHNXaXRoKCctJylcbiAgICAgICAgICA/IGAtdi1weSR7dGhpcy52UFl9YFxuICAgICAgICAgIDogYHYtcHktJHt0aGlzLnZQWX1gXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRoaXMudlAgfHwgdGhpcy52UCA9PT0gMFxuICAgICAgICA/IHRoaXMuY29udmVydFRvU3RyaW5nKHRoaXMudlApLnN0YXJ0c1dpdGgoJy0nKVxuICAgICAgICAgID8gYC12LXAke3RoaXMudlB9YFxuICAgICAgICAgIDogYHYtcC0ke3RoaXMudlB9YFxuICAgICAgICA6IG51bGxcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvU3RyaW5nKHZhbHVlOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZS50b1N0cmluZygpIDogJyc7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBwYWRkaW5nLWJsb2NrLXN0YXJ0IHByb3BlcnR5LiA8YnI+XG4gICAqIEFjY2VwdHM6IDAgLSA0OCBvciA8Y29kZT5TcGFjaW5nUHJvcGVydGllczwvY29kZT4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdlBUKCk6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQge1xuICAgIHJldHVybiB0aGlzLl92UFQ7XG4gIH1cbiAgc2V0IHZQVCh2YWx1ZSkge1xuICAgIHRoaXMuX3ZQVCA9IHZhbHVlO1xuICB9XG4gIF92UFQ6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNldHMgcGFkZGluZy1pbmxpbmUtZW5kIHByb3BlcnR5LiA8YnI+XG4gICAqIEFjY2VwdHM6IDAgLSA0OCBvciA8Y29kZT5TcGFjaW5nUHJvcGVydGllczwvY29kZT4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdlBSKCk6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQge1xuICAgIHJldHVybiB0aGlzLl92UFI7XG4gIH1cbiAgc2V0IHZQUih2YWx1ZSkge1xuICAgIHRoaXMuX3ZQUiA9IHZhbHVlO1xuICB9XG4gIF92UFI6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNldHMgcGFkZGluZy1ibG9jay1lbmQgcHJvcGVydHkuIDxicj5cbiAgICogQWNjZXB0czogMCAtIDQ4IG9yIDxjb2RlPlNwYWNpbmdQcm9wZXJ0aWVzPC9jb2RlPi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2UEIoKTogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZQQjtcbiAgfVxuICBzZXQgdlBCKHZhbHVlKSB7XG4gICAgdGhpcy5fdlBCID0gdmFsdWU7XG4gIH1cbiAgX3ZQQjogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dDtcblxuICAvKipcbiAgICogU2V0cyBwYWRkaW5nLWlubGluZS1zdGFydCBwcm9wZXJ0eS4gPGJyPlxuICAgKiBBY2NlcHRzOiAwIC0gNDggb3IgPGNvZGU+U3BhY2luZ1Byb3BlcnRpZXM8L2NvZGU+LlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHZQTCgpOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0IHtcbiAgICByZXR1cm4gdGhpcy5fdlBMO1xuICB9XG4gIHNldCB2UEwodmFsdWUpIHtcbiAgICB0aGlzLl92UEwgPSB2YWx1ZTtcbiAgfVxuICBfdlBMOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0O1xuXG4gIC8qKlxuICAgKiBTZXRzIHBhZGRpbmctaW5saW5lIHByb3BlcnR5LiA8YnI+XG4gICAqIEFjY2VwdHM6IDAgLSA0OCBvciA8Y29kZT5TcGFjaW5nUHJvcGVydGllczwvY29kZT4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdlBYKCk6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQge1xuICAgIHJldHVybiB0aGlzLl92UFg7XG4gIH1cbiAgc2V0IHZQWCh2YWx1ZSkge1xuICAgIHRoaXMuX3ZQWCA9IHZhbHVlO1xuICB9XG4gIF92UFg6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNldHMgcGFkZGluZy1ibG9jayBwcm9wZXJ0eS4gPGJyPlxuICAgKiBBY2NlcHRzOiAwIC0gNDggb3IgPGNvZGU+U3BhY2luZ1Byb3BlcnRpZXM8L2NvZGU+LlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHZQWSgpOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0IHtcbiAgICByZXR1cm4gdGhpcy5fdlBZO1xuICB9XG4gIHNldCB2UFkodmFsdWUpIHtcbiAgICB0aGlzLl92UFkgPSB2YWx1ZTtcbiAgfVxuICBfdlBZOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0O1xuXG4gIC8qKlxuICAgKiBTZXRzIHBhZGRpbmcgcHJvcGVydHkuIDxicj5cbiAgICogQWNjZXB0czogMCAtIDQ4IG9yIDxjb2RlPlNwYWNpbmdQcm9wZXJ0aWVzPC9jb2RlPi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2UCgpOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0IHtcbiAgICByZXR1cm4gdGhpcy5fdlA7XG4gIH1cbiAgc2V0IHZQKHZhbHVlKSB7XG4gICAgdGhpcy5fdlAgPSB2YWx1ZTtcbiAgfVxuICBfdlA6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG59XG4iXX0=