UNPKG

ynkap-payment

Version:

Module de paiement Y-Nkap pour Angular - Intégration simple des paiements mobiles (Orange Money, MTN Mobile Money)

101 lines (99 loc) 14.3 kB
import { Component, Inject, Input, Optional } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./configuration/configuration.service"; import * as i2 from "@angular/common"; export class YnkapComponent { constructor(configService, moduleConfig) { this.configService = configService; this.moduleConfig = moduleConfig; /** * Version actuelle du module Y-Nkap */ this.version = '1.0.0-dev'; /** * Indique si le module est correctement initialisé */ this.isInitialized = false; } ngOnInit() { // Vérifie si le service est déjà initialisé this.isInitialized = this.configService.isInitialized(); // Si non initialisé mais config disponible, initialiser if (!this.isInitialized) { // Priorité à la config fournie par input, puis celle du module const config = this.config || this.moduleConfig; if (config) { this.isInitialized = this.configService.initialize(config); } } } /** * Initialise manuellement le module Y-Nkap avec une configuration * @param config Configuration de l'API Y-Nkap * @returns true si l'initialisation a réussi, false sinon */ initialize(config) { this.isInitialized = this.configService.initialize(config); return this.isInitialized; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: YnkapComponent, deps: [{ token: i1.ConfigurationService }, { token: 'Y_NKAP_CONFIG', optional: true }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: YnkapComponent, selector: "lib-ynkap", inputs: { config: "config" }, ngImport: i0, template: ` <div class="ynkap-container"> <!-- Message d'accueil ou d'erreur --> <div *ngIf="!isInitialized" class="ynkap-error-message"> Y-Nkap n'est pas initialisé. Veuillez fournir une configuration valide avec vos clés d'API. </div> <!-- Message de bienvenue si initialisé --> <div *ngIf="isInitialized" class="ynkap-welcome"> <div class="ynkap-logo"> <img src="https://placeholder-for-ynkap-logo.svg" alt="Y-Nkap" /> </div> <h2 class="ynkap-title">Y-Nkap - La passerelle de paiement sécurisée</h2> <p class="ynkap-description"> Intégrez facilement les paiements en ligne dans votre application avec Y-Nkap. Utilisez les composants spécifiques pour accéder aux fonctionnalités : </p> <ul class="ynkap-components-list"> <li><code>&lt;lib-ynkap-payment&gt;</code> - Module de paiement</li> <li><code>&lt;lib-configuration&gt;</code> - Configuration de l'API</li> </ul> <div class="ynkap-version">Version: {{version}}</div> </div> </div> `, isInline: true, styles: [".ynkap-container{font-family:Roboto,Segoe UI,Arial,sans-serif;padding:20px;border-radius:8px;background-color:#f9f9f9;color:#333;max-width:600px;margin:0 auto}.ynkap-error-message{background-color:#ffeaea;border-left:4px solid #f44336;padding:12px 15px;border-radius:4px;color:#d32f2f;font-size:.9rem}.ynkap-welcome{text-align:center}.ynkap-logo{margin:0 auto 20px;width:80px;height:80px;background-color:#007bff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.5rem}.ynkap-title{font-size:1.5rem;color:#2c3e50;margin-bottom:15px}.ynkap-description{font-size:1rem;line-height:1.5;color:#666;margin-bottom:20px}.ynkap-components-list{text-align:left;width:max-content;margin:0 auto 20px;padding-left:20px}.ynkap-components-list li{margin-bottom:8px}.ynkap-components-list code{background-color:#e9ecef;padding:2px 6px;border-radius:4px;color:#007bff;font-family:monospace}.ynkap-version{font-size:.8rem;color:#999;margin-top:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: YnkapComponent, decorators: [{ type: Component, args: [{ selector: 'lib-ynkap', template: ` <div class="ynkap-container"> <!-- Message d'accueil ou d'erreur --> <div *ngIf="!isInitialized" class="ynkap-error-message"> Y-Nkap n'est pas initialisé. Veuillez fournir une configuration valide avec vos clés d'API. </div> <!-- Message de bienvenue si initialisé --> <div *ngIf="isInitialized" class="ynkap-welcome"> <div class="ynkap-logo"> <img src="https://placeholder-for-ynkap-logo.svg" alt="Y-Nkap" /> </div> <h2 class="ynkap-title">Y-Nkap - La passerelle de paiement sécurisée</h2> <p class="ynkap-description"> Intégrez facilement les paiements en ligne dans votre application avec Y-Nkap. Utilisez les composants spécifiques pour accéder aux fonctionnalités : </p> <ul class="ynkap-components-list"> <li><code>&lt;lib-ynkap-payment&gt;</code> - Module de paiement</li> <li><code>&lt;lib-configuration&gt;</code> - Configuration de l'API</li> </ul> <div class="ynkap-version">Version: {{version}}</div> </div> </div> `, styles: [".ynkap-container{font-family:Roboto,Segoe UI,Arial,sans-serif;padding:20px;border-radius:8px;background-color:#f9f9f9;color:#333;max-width:600px;margin:0 auto}.ynkap-error-message{background-color:#ffeaea;border-left:4px solid #f44336;padding:12px 15px;border-radius:4px;color:#d32f2f;font-size:.9rem}.ynkap-welcome{text-align:center}.ynkap-logo{margin:0 auto 20px;width:80px;height:80px;background-color:#007bff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.5rem}.ynkap-title{font-size:1.5rem;color:#2c3e50;margin-bottom:15px}.ynkap-description{font-size:1rem;line-height:1.5;color:#666;margin-bottom:20px}.ynkap-components-list{text-align:left;width:max-content;margin:0 auto 20px;padding-left:20px}.ynkap-components-list li{margin-bottom:8px}.ynkap-components-list code{background-color:#e9ecef;padding:2px 6px;border-radius:4px;color:#007bff;font-family:monospace}.ynkap-version{font-size:.8rem;color:#999;margin-top:20px}\n"] }] }], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['Y_NKAP_CONFIG'] }] }]; }, propDecorators: { config: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW5rYXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMveW5rYXAvc3JjL2xpYi95bmthcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQTRHM0UsTUFBTSxPQUFPLGNBQWM7SUFnQnpCLFlBQ1UsYUFBbUMsRUFDRSxZQUF3QjtRQUQ3RCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDRSxpQkFBWSxHQUFaLFlBQVksQ0FBWTtRQWpCdkU7O1dBRUc7UUFDSCxZQUFPLEdBQUcsV0FBVyxDQUFDO1FBRXRCOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxLQUFLLENBQUM7SUFVbkIsQ0FBQztJQUVKLFFBQVE7UUFDTiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXhELHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QiwrREFBK0Q7WUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hELElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUQ7U0FDRjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE1BQWlCO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBM0NVLGNBQWMsc0RBa0JILGVBQWU7bUdBbEIxQixjQUFjLCtFQXRHZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JUOzs0RkE4RVUsY0FBYztrQkF4RzFCLFNBQVM7K0JBQ0UsV0FBVyxZQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QlQ7OzBCQWdHRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7NENBSjVCLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaUNvbmZpZyB9IGZyb20gJy4vY29uZmlndXJhdGlvbi9tb2RlbHMvYXBpLWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi15bmthcCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInlua2FwLWNvbnRhaW5lclwiPlxuICAgICAgPCEtLSBNZXNzYWdlIGQnYWNjdWVpbCBvdSBkJ2VycmV1ciAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhaXNJbml0aWFsaXplZFwiIGNsYXNzPVwieW5rYXAtZXJyb3ItbWVzc2FnZVwiPlxuICAgICAgICBZLU5rYXAgbidlc3QgcGFzIGluaXRpYWxpc8OpLiBWZXVpbGxleiBmb3VybmlyIHVuZSBjb25maWd1cmF0aW9uIHZhbGlkZSBhdmVjIHZvcyBjbMOpcyBkJ0FQSS5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8IS0tIE1lc3NhZ2UgZGUgYmllbnZlbnVlIHNpIGluaXRpYWxpc8OpIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImlzSW5pdGlhbGl6ZWRcIiBjbGFzcz1cInlua2FwLXdlbGNvbWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInlua2FwLWxvZ29cIj5cbiAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcGxhY2Vob2xkZXItZm9yLXlua2FwLWxvZ28uc3ZnXCIgYWx0PVwiWS1Oa2FwXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxoMiBjbGFzcz1cInlua2FwLXRpdGxlXCI+WS1Oa2FwIC0gTGEgcGFzc2VyZWxsZSBkZSBwYWllbWVudCBzw6ljdXJpc8OpZTwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwieW5rYXAtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBJbnTDqWdyZXogZmFjaWxlbWVudCBsZXMgcGFpZW1lbnRzIGVuIGxpZ25lIGRhbnMgdm90cmUgYXBwbGljYXRpb24gYXZlYyBZLU5rYXAuXG4gICAgICAgICAgVXRpbGlzZXogbGVzIGNvbXBvc2FudHMgc3DDqWNpZmlxdWVzIHBvdXIgYWNjw6lkZXIgYXV4IGZvbmN0aW9ubmFsaXTDqXMgOlxuICAgICAgICA8L3A+XG4gICAgICAgIDx1bCBjbGFzcz1cInlua2FwLWNvbXBvbmVudHMtbGlzdFwiPlxuICAgICAgICAgIDxsaT48Y29kZT4mbHQ7bGliLXlua2FwLXBheW1lbnQmZ3Q7PC9jb2RlPiAtIE1vZHVsZSBkZSBwYWllbWVudDwvbGk+XG4gICAgICAgICAgPGxpPjxjb2RlPiZsdDtsaWItY29uZmlndXJhdGlvbiZndDs8L2NvZGU+IC0gQ29uZmlndXJhdGlvbiBkZSBsJ0FQSTwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ5bmthcC12ZXJzaW9uXCI+VmVyc2lvbjoge3t2ZXJzaW9ufX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLnlua2FwLWNvbnRhaW5lciB7XG4gICAgICBmb250LWZhbWlseTogJ1JvYm90bycsICdTZWdvZSBVSScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gICAgXG4gICAgLnlua2FwLWVycm9yLW1lc3NhZ2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWFlYTtcbiAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2Y0NDMzNjtcbiAgICAgIHBhZGRpbmc6IDEycHggMTVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGNvbG9yOiAjZDMyZjJmO1xuICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgfVxuICAgIFxuICAgIC55bmthcC13ZWxjb21lIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgXG4gICAgLnlua2FwLWxvZ28ge1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMjBweDtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIH1cbiAgICBcbiAgICAueW5rYXAtdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBjb2xvcjogIzJjM2U1MDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuICAgIFxuICAgIC55bmthcC1kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgY29sb3I6ICM2NjY7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgICBcbiAgICAueW5rYXAtY29tcG9uZW50cy1saXN0IHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICBtYXJnaW46IDAgYXV0byAyMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIH1cbiAgICBcbiAgICAueW5rYXAtY29tcG9uZW50cy1saXN0IGxpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG4gICAgXG4gICAgLnlua2FwLWNvbXBvbmVudHMtbGlzdCBjb2RlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG4gICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY29sb3I6ICMwMDdiZmY7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgIH1cbiAgICBcbiAgICAueW5rYXAtdmVyc2lvbiB7XG4gICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFlua2FwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFZlcnNpb24gYWN0dWVsbGUgZHUgbW9kdWxlIFktTmthcFxuICAgKi9cbiAgdmVyc2lvbiA9ICcxLjAuMC1kZXYnO1xuICBcbiAgLyoqXG4gICAqIEluZGlxdWUgc2kgbGUgbW9kdWxlIGVzdCBjb3JyZWN0ZW1lbnQgaW5pdGlhbGlzw6lcbiAgICovXG4gIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbm5lbGxlIGZvdXJuaWUgZGlyZWN0ZW1lbnQgYXUgY29tcG9zYW50XG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBBcGlDb25maWc7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoJ1lfTktBUF9DT05GSUcnKSBwcml2YXRlIG1vZHVsZUNvbmZpZz86IEFwaUNvbmZpZ1xuICApIHt9XG4gIFxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBWw6lyaWZpZSBzaSBsZSBzZXJ2aWNlIGVzdCBkw6lqw6AgaW5pdGlhbGlzw6lcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuaXNJbml0aWFsaXplZCgpO1xuICAgIFxuICAgIC8vIFNpIG5vbiBpbml0aWFsaXPDqSBtYWlzIGNvbmZpZyBkaXNwb25pYmxlLCBpbml0aWFsaXNlclxuICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICAvLyBQcmlvcml0w6kgw6AgbGEgY29uZmlnIGZvdXJuaWUgcGFyIGlucHV0LCBwdWlzIGNlbGxlIGR1IG1vZHVsZVxuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcgfHwgdGhpcy5tb2R1bGVDb25maWc7XG4gICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRoaXMuY29uZmlnU2VydmljZS5pbml0aWFsaXplKGNvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICogSW5pdGlhbGlzZSBtYW51ZWxsZW1lbnQgbGUgbW9kdWxlIFktTmthcCBhdmVjIHVuZSBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBkZSBsJ0FQSSBZLU5rYXBcbiAgICogQHJldHVybnMgdHJ1ZSBzaSBsJ2luaXRpYWxpc2F0aW9uIGEgcsOpdXNzaSwgZmFsc2Ugc2lub25cbiAgICovXG4gIGluaXRpYWxpemUoY29uZmlnOiBBcGlDb25maWcpOiBib29sZWFuIHtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuaW5pdGlhbGl6ZShjb25maWcpO1xuICAgIHJldHVybiB0aGlzLmlzSW5pdGlhbGl6ZWQ7XG4gIH1cbn1cbiJdfQ==