@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 MarginDirective {
get hostClasses() {
return [
this.vMT || this.vMT === 0
? this.convertToString(this.vMT).startsWith('-')
? `-v-mt${this.vMT}`
: `v-mt-${this.vMT}`
: null,
this.vMR || this.vMR === 0
? this.convertToString(this.vMR).startsWith('-')
? `-v-mr${this.vMR}`
: `v-mr-${this.vMR}`
: null,
this.vMB || this.vMB === 0
? this.convertToString(this.vMB).startsWith('-')
? `-v-mb${this.vMB}`
: `v-mb-${this.vMB}`
: null,
this.vML || this.vML === 0
? this.convertToString(this.vML).startsWith('-')
? `-v-ml${this.vML}`
: `v-ml-${this.vML}`
: null,
this.vMX || this.vMX === 0
? this.convertToString(this.vMX).startsWith('-')
? `-v-mx${this.vMX}`
: `v-mx-${this.vMX}`
: null,
this.vMY || this.vMY === 0
? this.convertToString(this.vMY).startsWith('-')
? `-v-my${this.vMY}`
: `v-my-${this.vMY}`
: null,
this.vM || this.vM === 0
? this.convertToString(this.vM).startsWith('-')
? `-v-m${this.vM}`
: `v-m-${this.vM}`
: null
].join(' ');
}
convertToString(value) {
return value ? value.toString() : '';
}
/**
* Sets margin-block-start property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vMT() {
return this._vMT;
}
set vMT(value) {
this._vMT = value;
}
/**
* Sets margin-inline-end property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vMR() {
return this._vMR;
}
set vMR(value) {
this._vMR = value;
}
/**
* Sets margin-block-end property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vMB() {
return this._vMB;
}
set vMB(value) {
this._vMB = value;
}
/**
* Sets margin-inline-start property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vML() {
return this._vML;
}
set vML(value) {
this._vML = value;
}
/**
* Sets margin-inline property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vMX() {
return this._vMX;
}
set vMX(value) {
this._vMX = value;
}
/**
* Sets margin-block property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vMY() {
return this._vMY;
}
set vMY(value) {
this._vMY = value;
}
/**
* Sets margin property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
get vM() {
return this._vM;
}
set vM(value) {
this._vM = value;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarginDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: MarginDirective, isStandalone: true, selector: "[vMT], [vMR], [vMB], [vML], [vMX], [vMY], [vM], ", inputs: { vMT: "vMT", vMR: "vMR", vMB: "vMB", vML: "vML", vMX: "vMX", vMY: "vMY", vM: "vM" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarginDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[vMT], ' + // margin block start
'[vMR], ' + // margin inline end
'[vMB], ' + // margin block end
'[vML], ' + // margin inline start
'[vMX], ' + // margin inline
'[vMY], ' + // margin block
'[vM], ' // all margins
}]
}], propDecorators: { hostClasses: [{
type: HostBinding,
args: ['class']
}], vMT: [{
type: Input
}], vMR: [{
type: Input
}], vMB: [{
type: Input
}], vML: [{
type: Input
}], vMX: [{
type: Input
}], vMY: [{
type: Input
}], vM: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyZ2luLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbm92YS1saWIvc3JjL2xpYi9tYXJnaW4vbWFyZ2luLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWM5RCxNQUFNLE9BQU8sZUFBZTtJQUMxQixJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO29CQUM5QyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNwQixDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN0QixDQUFDLENBQUMsSUFBSTtZQUNSLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztvQkFDOUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDcEIsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsQ0FBQyxDQUFDLElBQUk7WUFDUixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7b0JBQzlDLENBQUMsQ0FBQyxRQUFR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QUM7SUFDbkIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsSUFDSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFLO1FBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUdEOzs7T0FHRztJQUNILElBQ0ksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsS0FBSztRQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQ25CLENBQUM7K0dBdElVLGVBQWU7bUdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFYM0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUNOLFNBQVMsR0FBRyxxQkFBcUI7d0JBQ2pDLFNBQVMsR0FBRyxvQkFBb0I7d0JBQ2hDLFNBQVMsR0FBRyxtQkFBbUI7d0JBQy9CLFNBQVMsR0FBRyxzQkFBc0I7d0JBQ2xDLFNBQVMsR0FBRyxnQkFBZ0I7d0JBQzVCLFNBQVMsR0FBRyxlQUFlO3dCQUMzQixRQUFRLENBQUMsY0FBYztpQkFDMUI7OEJBR0ssV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBa0RoQixHQUFHO3NCQUROLEtBQUs7Z0JBY0YsR0FBRztzQkFETixLQUFLO2dCQWNGLEdBQUc7c0JBRE4sS0FBSztnQkFjRixHQUFHO3NCQUROLEtBQUs7Z0JBY0YsR0FBRztzQkFETixLQUFLO2dCQWNGLEdBQUc7c0JBRE4sS0FBSztnQkFjRixFQUFFO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwYWNpbmdQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vbm92YS1saWIuY29uc3RhbnRzJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOlxuICAgICdbdk1UXSwgJyArIC8vIG1hcmdpbiBibG9jayBzdGFydFxuICAgICdbdk1SXSwgJyArIC8vIG1hcmdpbiBpbmxpbmUgZW5kXG4gICAgJ1t2TUJdLCAnICsgLy8gbWFyZ2luIGJsb2NrIGVuZFxuICAgICdbdk1MXSwgJyArIC8vIG1hcmdpbiBpbmxpbmUgc3RhcnRcbiAgICAnW3ZNWF0sICcgKyAvLyBtYXJnaW4gaW5saW5lXG4gICAgJ1t2TVldLCAnICsgLy8gbWFyZ2luIGJsb2NrXG4gICAgJ1t2TV0sICcgLy8gYWxsIG1hcmdpbnNcbn0pXG5leHBvcnQgY2xhc3MgTWFyZ2luRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLnZNVCB8fCB0aGlzLnZNVCA9PT0gMFxuICAgICAgICA/IHRoaXMuY29udmVydFRvU3RyaW5nKHRoaXMudk1UKS5zdGFydHNXaXRoKCctJylcbiAgICAgICAgICA/IGAtdi1tdCR7dGhpcy52TVR9YFxuICAgICAgICAgIDogYHYtbXQtJHt0aGlzLnZNVH1gXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRoaXMudk1SIHx8IHRoaXMudk1SID09PSAwXG4gICAgICAgID8gdGhpcy5jb252ZXJ0VG9TdHJpbmcodGhpcy52TVIpLnN0YXJ0c1dpdGgoJy0nKVxuICAgICAgICAgID8gYC12LW1yJHt0aGlzLnZNUn1gXG4gICAgICAgICAgOiBgdi1tci0ke3RoaXMudk1SfWBcbiAgICAgICAgOiBudWxsLFxuICAgICAgdGhpcy52TUIgfHwgdGhpcy52TUIgPT09IDBcbiAgICAgICAgPyB0aGlzLmNvbnZlcnRUb1N0cmluZyh0aGlzLnZNQikuc3RhcnRzV2l0aCgnLScpXG4gICAgICAgICAgPyBgLXYtbWIke3RoaXMudk1CfWBcbiAgICAgICAgICA6IGB2LW1iLSR7dGhpcy52TUJ9YFxuICAgICAgICA6IG51bGwsXG4gICAgICB0aGlzLnZNTCB8fCB0aGlzLnZNTCA9PT0gMFxuICAgICAgICA/IHRoaXMuY29udmVydFRvU3RyaW5nKHRoaXMudk1MKS5zdGFydHNXaXRoKCctJylcbiAgICAgICAgICA/IGAtdi1tbCR7dGhpcy52TUx9YFxuICAgICAgICAgIDogYHYtbWwtJHt0aGlzLnZNTH1gXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRoaXMudk1YIHx8IHRoaXMudk1YID09PSAwXG4gICAgICAgID8gdGhpcy5jb252ZXJ0VG9TdHJpbmcodGhpcy52TVgpLnN0YXJ0c1dpdGgoJy0nKVxuICAgICAgICAgID8gYC12LW14JHt0aGlzLnZNWH1gXG4gICAgICAgICAgOiBgdi1teC0ke3RoaXMudk1YfWBcbiAgICAgICAgOiBudWxsLFxuICAgICAgdGhpcy52TVkgfHwgdGhpcy52TVkgPT09IDBcbiAgICAgICAgPyB0aGlzLmNvbnZlcnRUb1N0cmluZyh0aGlzLnZNWSkuc3RhcnRzV2l0aCgnLScpXG4gICAgICAgICAgPyBgLXYtbXkke3RoaXMudk1ZfWBcbiAgICAgICAgICA6IGB2LW15LSR7dGhpcy52TVl9YFxuICAgICAgICA6IG51bGwsXG4gICAgICB0aGlzLnZNIHx8IHRoaXMudk0gPT09IDBcbiAgICAgICAgPyB0aGlzLmNvbnZlcnRUb1N0cmluZyh0aGlzLnZNKS5zdGFydHNXaXRoKCctJylcbiAgICAgICAgICA/IGAtdi1tJHt0aGlzLnZNfWBcbiAgICAgICAgICA6IGB2LW0tJHt0aGlzLnZNfWBcbiAgICAgICAgOiBudWxsXG4gICAgXS5qb2luKCcgJyk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUb1N0cmluZyh2YWx1ZTogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlID8gdmFsdWUudG9TdHJpbmcoKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgbWFyZ2luLWJsb2NrLXN0YXJ0IHByb3BlcnR5LiA8YnI+XG4gICAqIEFjY2VwdHM6IDAgLSA0OCBvciA8Y29kZT5TcGFjaW5nUHJvcGVydGllczwvY29kZT4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdk1UKCk6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQge1xuICAgIHJldHVybiB0aGlzLl92TVQ7XG4gIH1cbiAgc2V0IHZNVCh2YWx1ZSkge1xuICAgIHRoaXMuX3ZNVCA9IHZhbHVlO1xuICB9XG4gIF92TVQ6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNldHMgbWFyZ2luLWlubGluZS1lbmQgcHJvcGVydHkuIDxicj5cbiAgICogQWNjZXB0czogMCAtIDQ4IG9yIDxjb2RlPlNwYWNpbmdQcm9wZXJ0aWVzPC9jb2RlPi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2TVIoKTogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZNUjtcbiAgfVxuICBzZXQgdk1SKHZhbHVlKSB7XG4gICAgdGhpcy5fdk1SID0gdmFsdWU7XG4gIH1cbiAgX3ZNUjogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dDtcblxuICAvKipcbiAgICogU2V0cyBtYXJnaW4tYmxvY2stZW5kIHByb3BlcnR5LiA8YnI+XG4gICAqIEFjY2VwdHM6IDAgLSA0OCBvciA8Y29kZT5TcGFjaW5nUHJvcGVydGllczwvY29kZT4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdk1CKCk6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQge1xuICAgIHJldHVybiB0aGlzLl92TUI7XG4gIH1cbiAgc2V0IHZNQih2YWx1ZSkge1xuICAgIHRoaXMuX3ZNQiA9IHZhbHVlO1xuICB9XG4gIF92TUI6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNldHMgbWFyZ2luLWlubGluZS1zdGFydCBwcm9wZXJ0eS4gPGJyPlxuICAgKiBBY2NlcHRzOiAwIC0gNDggb3IgPGNvZGU+U3BhY2luZ1Byb3BlcnRpZXM8L2NvZGU+LlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHZNTCgpOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0IHtcbiAgICByZXR1cm4gdGhpcy5fdk1MO1xuICB9XG4gIHNldCB2TUwodmFsdWUpIHtcbiAgICB0aGlzLl92TUwgPSB2YWx1ZTtcbiAgfVxuICBfdk1MOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0O1xuXG4gIC8qKlxuICAgKiBTZXRzIG1hcmdpbi1pbmxpbmUgcHJvcGVydHkuIDxicj5cbiAgICogQWNjZXB0czogMCAtIDQ4IG9yIDxjb2RlPlNwYWNpbmdQcm9wZXJ0aWVzPC9jb2RlPi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2TVgoKTogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZNWDtcbiAgfVxuICBzZXQgdk1YKHZhbHVlKSB7XG4gICAgdGhpcy5fdk1YID0gdmFsdWU7XG4gIH1cbiAgX3ZNWDogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dDtcblxuICAvKipcbiAgICogU2V0cyBtYXJnaW4tYmxvY2sgcHJvcGVydHkuIDxicj5cbiAgICogQWNjZXB0czogMCAtIDQ4IG9yIDxjb2RlPlNwYWNpbmdQcm9wZXJ0aWVzPC9jb2RlPi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2TVkoKTogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZNWTtcbiAgfVxuICBzZXQgdk1ZKHZhbHVlKSB7XG4gICAgdGhpcy5fdk1ZID0gdmFsdWU7XG4gIH1cbiAgX3ZNWTogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dDtcblxuICAvKipcbiAgICogU2V0cyBtYXJnaW4gcHJvcGVydHkuIDxicj5cbiAgICogQWNjZXB0czogMCAtIDQ4IG9yIDxjb2RlPlNwYWNpbmdQcm9wZXJ0aWVzPC9jb2RlPi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2TSgpOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0IHtcbiAgICByZXR1cm4gdGhpcy5fdk07XG4gIH1cbiAgc2V0IHZNKHZhbHVlKSB7XG4gICAgdGhpcy5fdk0gPSB2YWx1ZTtcbiAgfVxuICBfdk06IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG59XG4iXX0=