@niur/ng-gpt
Version:
A Angular implementation of the google GPT API.
33 lines • 3.71 kB
JavaScript
import { Injectable } from '@angular/core';
import { DEFAULT_TAG_NAME } from '../constants';
import * as i0 from "@angular/core";
export class IdGeneratorUtil {
constructor() {
this.ids = {};
}
generate(element) {
if (element && element.id && !(element.id in this.ids))
return element.id;
const tagName = element.tagName || DEFAULT_TAG_NAME;
let id = '';
do {
const number = Math.random().toString().slice(2);
id = tagName + '-' + number;
} while (id in this.ids);
this.ids[id] = true;
element.id = id;
return id;
}
isTaken(id) {
return id in this.ids;
}
isUnique(id) {
return !this.isTaken(id);
}
}
IdGeneratorUtil.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: IdGeneratorUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
IdGeneratorUtil.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: IdGeneratorUtil });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: IdGeneratorUtil, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtZ2VuZXJhdG9yLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1ncHQvc3JjL2xpYi91dGlscy9pZC1nZW5lcmF0b3IudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHaEQsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFVSxRQUFHLEdBQStCLEVBQUUsQ0FBQztLQTJCOUM7SUF6QkMsUUFBUSxDQUFDLE9BQW9CO1FBQzNCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUUxRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1FBRXBELElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUVaLEdBQUc7WUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELEVBQUUsR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQztTQUM3QixRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1FBRXpCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRWhCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFVO1FBQ2hCLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxFQUFVO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzRHQTNCVSxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERFRkFVTFRfVEFHX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWRHZW5lcmF0b3JVdGlsIHtcbiAgcHJpdmF0ZSBpZHM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgZ2VuZXJhdGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcge1xuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuaWQgJiYgIShlbGVtZW50LmlkIGluIHRoaXMuaWRzKSkgcmV0dXJuIGVsZW1lbnQuaWQ7XG5cbiAgICBjb25zdCB0YWdOYW1lID0gZWxlbWVudC50YWdOYW1lIHx8IERFRkFVTFRfVEFHX05BTUU7XG5cbiAgICBsZXQgaWQgPSAnJztcblxuICAgIGRvIHtcbiAgICAgIGNvbnN0IG51bWJlciA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5zbGljZSgyKTtcbiAgICAgIGlkID0gdGFnTmFtZSArICctJyArIG51bWJlcjtcbiAgICB9IHdoaWxlIChpZCBpbiB0aGlzLmlkcyk7XG5cbiAgICB0aGlzLmlkc1tpZF0gPSB0cnVlO1xuICAgIGVsZW1lbnQuaWQgPSBpZDtcblxuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGlzVGFrZW4oaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpZCBpbiB0aGlzLmlkcztcbiAgfVxuXG4gIGlzVW5pcXVlKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNUYWtlbihpZCk7XG4gIH1cbn1cbiJdfQ==