{ "version": 3, "sources": ["../ui/app/mn.views.list.service.js", "../ui/app/mn.documents.service.js", "../ui/app/mn.views.editing.service.js", "../ui/app/mn.router.service.js"], "sourcesContent": ["/*\nCopyright 2021-Present Couchbase, Inc.\n\nUse of this software is governed by the Business Source License included in\nthe file licenses/BSL-Couchbase.txt. As of the Change Date specified in that\nfile, in accordance with the Business Source License, use of this software will\nbe governed by the Apache License, Version 2.0, included in the file\nlicenses/APL2.txt.\n*/\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { UIRouter } from '@uirouter/angular';\nimport { switchMap, shareReplay, map, pluck, filter } from 'rxjs/operators';\nimport { BehaviorSubject, timer, combineLatest } from 'rxjs';\nimport { partition, compose, sortBy, reverse, prop, filter as ramdaFilter } from 'ramda';\n\nimport { MnPermissions } from './ajs.upgraded.providers.js';\n\nimport { MnHttpRequest } from './mn.http.request.js';\n\nexport { MnViewsListService }\n\nclass MnViewsListService {\n static get annotations() { return [\n new Injectable()\n ]}\n\n static get parameters() { return [\n HttpClient,\n UIRouter,\n MnPermissions\n ]}\n\n constructor(http, uiRouter, mnPermissions) {\n this.http = http;\n this.stream = {};\n this.permissions = mnPermissions.stream;\n\n this.commonBucket = uiRouter.globals.params$\n .pipe(pluck('commonBucket'));\n\n this.ddocumentId = uiRouter.globals.params$\n .pipe(pluck('ddocumentId'));\n\n this.bucketNames = this.permissions\n .pipe(filter(p => Object.keys(p.bucketNames).length),\n map(p => p.bucketNames['.views!read']));\n\n this.stream.updateDdocsPoller = new BehaviorSubject();\n\n this.stream.getDdocsResponse =\n combineLatest(this.commonBucket,\n this.bucketNames,\n timer(0, 4000),\n this.stream.updateDdocsPoller)\n .pipe(filter(([bucket, existingBuckets]) => existingBuckets.includes(bucket)),\n switchMap(this.getDdocs.bind(this)),\n shareReplay({refCount: true, bufferSize: 1}));\n\n this.stream.getDdoc =\n combineLatest(this.commonBucket,\n this.ddocumentId)\n .pipe(map(val => this.getDdocUrl(val)),\n switchMap(this.getDdoc.bind(this)),\n shareReplay({refCount: true, bufferSize: 1}));\n\n this.stream.getDdocs = this.stream.getDdocsResponse\n .pipe(map(response => response.body),\n shareReplay({refCount: true, bufferSize: 1}));\n\n this.stream.getDdocsStatus = this.stream.getDdocsResponse\n .pipe(map(response => response.status),\n shareReplay({refCount: true, bufferSize: 1}));\n\n this.stream.getDdocsByType = this.stream.getDdocs\n .pipe(map(ddocs => {\n let [development, production] = partition(this.isDevModeDoc, ddocs.rows);\n return { development, production } }),\n shareReplay({refCount: true, bufferSize: 1}));\n\n this.stream.postDdoc =\n new MnHttpRequest(this.postDdoc.bind(this))\n .addSuccess()\n .addError();\n\n this.stream.deleteDdoc =\n new MnHttpRequest(this.deleteDdoc.bind(this))\n .addSuccess()\n .addError();\n }\n\n getDdocUrl([bucket, id, prefix]) {\n let encodedBucket = encodeURIComponent(bucket);\n\n if (prefix) {\n id = prefix + id;\n }\n\n return '/couchBase/' + encodedBucket + '/' + id;\n }\n\n getDdoc(url) {\n return this.http.get(url);\n }\n\n getDdocs([bucket,]) {\n return this.http.get(`/pools/default/buckets/${bucket}/ddocs`, { observe: 'response' });\n }\n\n postDdoc(data) {\n return this.http.put(data.url, data.json, { headers: new HttpHeaders().set(\"isNotForm\", true) });\n }\n\n deleteDdoc(url) {\n return this.http.delete(url);\n }\n\n isDevModeDoc(row) {\n let devPrefix = \"_design/dev_\";\n return row.doc.meta.id.substring(0, devPrefix.length) === devPrefix;\n }\n\n removeDesignPrefix(id) {\n return id.replace(\"_design/dev_\", \"\");\n }\n\n addDevPrefix(id) {\n return id.replace(\"_design/\", \"_design/dev_\");\n }\n\n prepareCompactionProgressText(compactionTask) {\n return compactionTask ? (compactionTask.progress + '% complete') : '';\n }\n\n /* the bucket tasks are sorted in reverse alphabetical order,\n * as view_compaction must take precedence over indexing tasks. */\n getCompactionTask([compactionTasks, bucketName]) {\n let sorter = compose(reverse(),\n sortBy(prop('type')),\n ramdaFilter(t => t.bucket == bucketName));\n\n return compactionTasks && sorter(compactionTasks)[0];\n }\n\n showCompactBtn([compactionTask, bucketName, permissions]) {\n return (!compactionTask || !compactionTask.cancelURI) &&\n permissions.cluster.tasks.read &&\n permissions.cluster.bucket[bucketName].compact;\n }\n\n showCancelCompactBtn([compactionTask, bucketName, permissions]) {\n return (compactionTask && compactionTask.cancelURI) &&\n permissions.cluster.tasks.read &&\n permissions.cluster.bucket[bucketName].compact;\n }\n\n postCompact(postURL) {\n return this.http.post(postURL);\n }\n}\n", "/*\nCopyright 2021-Present Couchbase, Inc.\n\nUse of this software is governed by the Business Source License included in\nthe file licenses/BSL-Couchbase.txt. As of the Change Date specified in that\nfile, in accordance with the Business Source License, use of this software will\nbe governed by the Apache License, Version 2.0, included in the file\nlicenses/APL2.txt.\n*/\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient } from '@angular/common/http';\nimport { UIRouter } from '@uirouter/angular';\nimport {\n switchMap, shareReplay, pluck, withLatestFrom,\n combineLatest, distinctUntilChanged, startWith, catchError\n} from 'rxjs/operators';\nimport { Subject, BehaviorSubject, of } from 'rxjs';\n\nexport { MnDocumentsService }\n\nclass MnDocumentsService {\n static get annotations() { return [\n new Injectable()\n ]}\n\n static get parameters() { return [\n HttpClient,\n UIRouter\n ]}\n\n constructor(http, uiRouter) {\n this.http = http;\n this.stream = {};\n\n this.stream.recalculateRandomDocument = new BehaviorSubject();\n this.stream.getManualDocument = new Subject();\n\n this.commonBucket = uiRouter.globals.params$\n .pipe(pluck('commonBucket'),\n startWith(uiRouter.globals.params.commonBucket),\n distinctUntilChanged());\n\n this.stream.getDocuments = new BehaviorSubject()\n .pipe(switchMap(this.getDocuments.bind(this)),\n shareReplay({refCount: true, bufferSize: 1}));\n\n this.stream.getDocument = this.stream.getManualDocument\n .pipe(switchMap(this.getDocument.bind(this)),\n shareReplay({refCount: true, bufferSize: 1}));\n\n this.stream.getRandomDocument =\n this.commonBucket\n .pipe(combineLatest(this.stream.recalculateRandomDocument),\n pluck(0),\n switchMap(this.getRandomKey.bind(this)),\n pluck('key'),\n withLatestFrom(this.commonBucket),\n switchMap(this.getDocument.bind(this)),\n catchError(err => {\n if (err.status === 404) {\n return of({});\n } else {\n throw err;\n }}),\n shareReplay({ bufferSize: 1, refCount: true }));\n }\n\n getDocumentsURI(params) {\n let bucket = params.bucket || params.commonBucket;\n let base = \"/pools/default/buckets/\" + encodeURIComponent(bucket);\n\n return base + \"/docs\";\n }\n\n buildDocumentUrl(params) {\n return this.getDocumentsURI(params) + '/' + encodeURIComponent(params.documentId);\n }\n\n getDocument([key, bucket]) {\n let params = { bucket, documentId: key}\n return this.http.get(this.buildDocumentUrl(params));\n }\n\n getDocuments(params) {\n return this.http.get(this.getDocumentsURI(params));\n }\n\n getRandomKey(bucket) {\n return this.http.get(`/pools/default/buckets/${encodeURIComponent(bucket)}/localRandomKey`);\n }\n}\n", "/*\nCopyright 2021-Present Couchbase, Inc.\n\nUse of this software is governed by the Business Source License included in\nthe file licenses/BSL-Couchbase.txt. As of the Change Date specified in that\nfile, in accordance with the Business Source License, use of this software will\nbe governed by the Apache License, Version 2.0, included in the file\nlicenses/APL2.txt.\n*/\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient } from '@angular/common/http';\nimport {MnHttpRequest} from './mn.http.request.js';\n\nexport { MnViewsEditingService }\n\nclass MnViewsEditingService {\n static get annotations() { return [\n new Injectable()\n ]}\n\n static get parameters() { return [\n HttpClient\n ]}\n\n constructor(http) {\n this.http = http;\n this.stream = {};\n\n this.stream.getViewResult =\n new MnHttpRequest(this.getViewResult.bind(this))\n .addSuccess()\n .addError();\n }\n\n getViewResult(url) {\n if (url) {\n return this.http.get(url);\n } else {\n return [];\n }\n }\n}\n", "/*\nCopyright 2021-Present Couchbase, Inc.\n\nUse of this software is governed by the Business Source License included in\nthe file licenses/BSL-Couchbase.txt. As of the Change Date specified in that\nfile, in accordance with the Business Source License, use of this software will\nbe governed by the Apache License, Version 2.0, included in the file\nlicenses/APL2.txt.\n*/\n\nimport { Injectable } from \"@angular/core\";\nimport { UIRouter } from \"@uirouter/angular\";\nimport { switchMap, pluck, distinctUntilChanged, withLatestFrom } from 'rxjs/operators';\nimport { combineLatest, NEVER } from \"rxjs\";\nimport { of } from \"ramda\";\n\nimport { MnLifeCycleHooksToStream } from './mn.core.js';\n\nexport { MnRouterService }\n\nclass MnRouterService extends MnLifeCycleHooksToStream {\n static get annotations() { return [\n new Injectable()\n ]}\n\n static get parameters() { return [\n UIRouter\n ]}\n\n constructor(uiRouter) {\n super();\n\n this.uiRouter = uiRouter;\n }\n\n createBucketDropdown(getBuckets) {\n let getBucketUrlParam = this.uiRouter.globals.params$\n .pipe(pluck(\"commonBucket\"),\n distinctUntilChanged());\n\n let getBucketUrlParamDefined =\n combineLatest(getBucketUrlParam,\n getBuckets)\n .pipe(switchMap(([param, buckets]) => {\n let hasBucket = buckets.find(bucket => bucket.name === param);\n return hasBucket ? of(hasBucket) : NEVER;\n }));\n\n let getBucketUrlParamDefinedChanged = getBucketUrlParamDefined\n .pipe(distinctUntilChanged((a, b) => a.name === b.name));\n\n let bucketsWithParams = getBuckets\n .pipe(withLatestFrom(getBucketUrlParam));\n\n return { getBucketUrlParamDefinedChanged, bucketsWithParams }\n }\n}\n"], "mappings": "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", "names": [] }