{"version":3,"file":"xxmachina-components-services-json-schema.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/json-schema/json-schema.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/json-schema/xxmachina-components-services-json-schema.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { get } from 'lodash-es';\n\n\n@Injectable({ providedIn: 'root' })\nexport class JsonSchemaService {\n  private schemaCache: { [key: string]: any } = {}; // スキーマのキャッシュ\n\n  constructor(private http: HttpClient) { }\n\n  // スキーマを取得するメソッド\n  getSchema(schemaUrl: string): Observable<any> {\n    if (this.schemaCache[schemaUrl]) {\n      return of(this.schemaCache[schemaUrl]); // キャッシュから取得\n    }\n\n    return this.http.get(schemaUrl).pipe(\n      catchError(err => {\n        console.error('Error fetching schema:', err);\n        return of(null); // エラーが発生した場合はnullを返す\n      })\n    );\n  }\n\n  // $refを解決するメソッド\n  async resolveRef(schema: any, baseUrl?: string, localSchema: any = schema): Promise<any> {\n    if (!schema || typeof schema !== 'object') {\n      return schema; // オブジェクトでない場合はそのまま返す\n    }\n\n    // $refがある場合\n    if (schema.$ref) {\n      const refPath = schema.$ref;\n\n      // ローカル参照の場合\n      if (refPath.startsWith('#')) {\n        const path = refPath.substring(2).split('/').join('.');\n        return get(localSchema, path);\n      } else {\n        // 外部参照の場合\n        const referencedSchema = await this.getSchema(refPath).toPromise();\n        return this.resolveRef(referencedSchema, baseUrl, localSchema); // 再帰的に解決\n      }\n    }\n\n    // スキーマの各プロパティを処理\n    for (const key in schema) {\n      schema[key] = await this.resolveRef(schema[key], baseUrl, localSchema);\n    }\n\n    return schema; // 解決されたスキーマを返す\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAQa,iBAAiB,CAAA;AAGR,IAAA,IAAA;AAFZ,IAAA,WAAW,GAA2B,EAAE,CAAC;AAEjD,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;IAAgB;;AAGxC,IAAA,SAAS,CAAC,SAAiB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YAC/B,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC;AAEA,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAClC,UAAU,CAAC,GAAG,IAAG;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC5C,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CACH;IACH;;IAGA,MAAM,UAAU,CAAC,MAAW,EAAE,OAAgB,EAAE,cAAmB,MAAM,EAAA;QACvE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YACzC,OAAO,MAAM,CAAC;QAChB;;AAGA,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AACf,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI;;AAG3B,YAAA,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC3B,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACtD,gBAAA,OAAO,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;YAC/B;iBAAO;;AAEL,gBAAA,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE;AAClE,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACjE;QACF;;AAGA,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACxB,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC;QACxE;QAEA,OAAO,MAAM,CAAC;IAChB;uGA9CW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA;;2FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACPlC;;AAEG;;;;"}