ng-configcat-publicapi-ui 2.2.1 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +15 -15
  2. package/bundles/ng-configcat-publicapi-ui.umd.js +1917 -1758
  3. package/bundles/ng-configcat-publicapi-ui.umd.js.map +1 -1
  4. package/esm2015/lib/_models/index.js +3 -3
  5. package/esm2015/lib/_models/settingValuesModel.js +2 -2
  6. package/esm2015/lib/_models/updateSettingValuesModel.js +2 -2
  7. package/esm2015/lib/_services/form-helper.js +21 -21
  8. package/esm2015/lib/_services/index.js +2 -2
  9. package/esm2015/lib/_services/public-api.service.js +69 -71
  10. package/esm2015/lib/_services/setting-list-form-helper.js +135 -128
  11. package/esm2015/lib/authorization/authorization.component.js +54 -49
  12. package/esm2015/lib/base/base.component.js +42 -40
  13. package/esm2015/lib/configuration.js +13 -10
  14. package/esm2015/lib/dialogs/concurrent-dialog/concurrent-dialog.component.js +29 -26
  15. package/esm2015/lib/dialogs/expand-dialog/expand-dialog.component.js +81 -70
  16. package/esm2015/lib/dialogs/reason-dialog/reason-dialog.component.js +40 -35
  17. package/esm2015/lib/dialogs/save-snackbar/save-snackbar.component.js +18 -15
  18. package/esm2015/lib/ng-configcat-publicapi-ui.module.js +160 -101
  19. package/esm2015/lib/selects/config-select/config-select.component.js +61 -48
  20. package/esm2015/lib/selects/environment-select/environment-select.component.js +47 -40
  21. package/esm2015/lib/selects/product-select/product-select.component.js +40 -34
  22. package/esm2015/lib/selects/setting-select/setting-select.component.js +47 -40
  23. package/esm2015/lib/setting-item/setting-item.component.js +121 -106
  24. package/esm2015/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.js +87 -69
  25. package/esm2015/lib/setting-list/setting/rollout-rules/rollout-rules.component.js +287 -260
  26. package/esm2015/lib/setting-list/setting/setting.component.js +131 -112
  27. package/esm2015/lib/setting-list/setting/value/value.component.js +39 -31
  28. package/esm2015/lib/setting-list/setting-list.component.js +195 -179
  29. package/esm2015/ng-configcat-publicapi-ui.js +5 -19
  30. package/esm2015/public-api.js +12 -12
  31. package/fesm2015/ng-configcat-publicapi-ui.js +1536 -1378
  32. package/fesm2015/ng-configcat-publicapi-ui.js.map +1 -1
  33. package/lib/_models/index.d.ts +2 -2
  34. package/lib/_models/settingValuesModel.d.ts +11 -11
  35. package/lib/_models/updateSettingValuesModel.d.ts +7 -7
  36. package/lib/_services/form-helper.d.ts +4 -4
  37. package/lib/_services/index.d.ts +1 -1
  38. package/lib/_services/public-api.service.d.ts +18 -15
  39. package/lib/_services/setting-list-form-helper.d.ts +17 -14
  40. package/lib/authorization/authorization.component.d.ts +18 -15
  41. package/lib/base/base.component.d.ts +16 -13
  42. package/lib/configuration.d.ts +8 -5
  43. package/lib/dialogs/concurrent-dialog/concurrent-dialog.component.d.ts +12 -9
  44. package/lib/dialogs/expand-dialog/expand-dialog.component.d.ts +24 -20
  45. package/lib/dialogs/reason-dialog/reason-dialog.component.d.ts +15 -12
  46. package/lib/dialogs/save-snackbar/save-snackbar.component.d.ts +8 -5
  47. package/lib/ng-configcat-publicapi-ui.module.d.ts +44 -6
  48. package/lib/selects/config-select/config-select.component.d.ts +17 -14
  49. package/lib/selects/environment-select/environment-select.component.d.ts +17 -14
  50. package/lib/selects/product-select/product-select.component.d.ts +14 -11
  51. package/lib/selects/setting-select/setting-select.component.d.ts +17 -14
  52. package/lib/setting-item/setting-item.component.d.ts +34 -31
  53. package/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.d.ts +27 -22
  54. package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +52 -46
  55. package/lib/setting-list/setting/setting.component.d.ts +40 -37
  56. package/lib/setting-list/setting/value/value.component.d.ts +19 -16
  57. package/lib/setting-list/setting-list.component.d.ts +46 -42
  58. package/ng-configcat-publicapi-ui.d.ts +5 -18
  59. package/package.json +8 -10
  60. package/public-api.d.ts +8 -8
  61. package/ng-configcat-publicapi-ui.metadata.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ng-configcat-publicapi-ui.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/ng-configcat-publicapi-ui/src/lib/configuration.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/_services/public-api.service.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/base/base.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-item/setting-item.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/setting-select/setting-select.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/product-select/product-select.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/config-select/config-select.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/environment-select/environment-select.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/_services/form-helper.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/authorization/authorization.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/concurrent-dialog/concurrent-dialog.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/expand-dialog/expand-dialog.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/reason-dialog/reason-dialog.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/save-snackbar/save-snackbar.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/rollout-rules/rollout-rules.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/value/value.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/_services/setting-list-form-helper.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting-list.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/setting.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/ng-configcat-publicapi-ui.module.ts","../../../projects/ng-configcat-publicapi-ui/src/public-api.ts","../../../projects/ng-configcat-publicapi-ui/src/ng-configcat-publicapi-ui.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class Configuration {\r\n basicAuthUsername?: string;\r\n basicAuthPassword?: string;\r\n basePath = 'https://api.configcat.com';\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {\r\n Configuration as PublicApiConfiguration,\r\n ProductsService, EnvironmentsService, ConfigsService,\r\n FeatureFlagsSettingsService, FeatureFlagSettingValuesService, MeService,\r\n IntegrationLinksService\r\n} from 'ng-configcat-publicapi';\r\nimport { Configuration } from '../configuration';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PublicApiService {\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Optional() private configuration: Configuration) {\r\n }\r\n\r\n createMeService(basicAuthUsername: string = null, basicAuthPassword: string = null, basePath: string = null) {\r\n return new MeService(this.httpClient, basePath ?? this.configuration?.basePath,\r\n new PublicApiConfiguration({\r\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\r\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\r\n }));\r\n }\r\n\r\n createProductsService(basicAuthUsername: string = null, basicAuthPassword: string = null, basePath: string = null) {\r\n return new ProductsService(this.httpClient, basePath ?? this.configuration?.basePath,\r\n new PublicApiConfiguration({\r\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\r\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\r\n }));\r\n }\r\n\r\n createConfigsService(basicAuthUsername: string = null, basicAuthPassword: string = null, basePath: string = null) {\r\n return new ConfigsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\r\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\r\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\r\n }));\r\n }\r\n\r\n createEnvironmentsService(basicAuthUsername: string = null, basicAuthPassword: string = null, basePath: string = null) {\r\n return new EnvironmentsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\r\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\r\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\r\n }));\r\n }\r\n\r\n createSettingsService(basicAuthUsername: string = null, basicAuthPassword: string = null, basePath: string = null) {\r\n return new FeatureFlagsSettingsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\r\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\r\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\r\n }));\r\n }\r\n\r\n createSettingValuesService(basicAuthUsername: string = null, basicAuthPassword: string = null, basePath: string = null) {\r\n return new FeatureFlagSettingValuesService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\r\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\r\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\r\n }));\r\n }\r\n\r\n createIntegrationLinksService(basicAuthUsername: string = null, basicAuthPassword: string = null, basePath: string = null) {\r\n return new IntegrationLinksService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\r\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\r\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\r\n }));\r\n }\r\n}\r\n","import { Component, Input, Optional } from '@angular/core';\r\nimport { Configuration } from '../configuration';\r\nimport { PublicApiService } from '../_services/public-api.service';\r\n\r\n@Component({\r\n selector: 'base',\r\n template: '<div></div>'\r\n})\r\nexport class BaseComponent {\r\n\r\n @Input() basePath = null;\r\n @Input() basicAuthUsername = null;\r\n @Input() basicAuthPassword = null;\r\n\r\n constructor(private publicApiService: PublicApiService) {\r\n }\r\n\r\n protected createProductsService() {\r\n return this.publicApiService.createProductsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\r\n }\r\n\r\n protected createConfigsService() {\r\n return this.publicApiService.createConfigsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\r\n }\r\n\r\n protected createEnvironmentsService() {\r\n return this.publicApiService.createEnvironmentsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\r\n }\r\n\r\n protected createSettingsService() {\r\n return this.publicApiService.createSettingsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\r\n }\r\n\r\n protected createSettingValuesService() {\r\n return this.publicApiService.createSettingValuesService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\r\n }\r\n}\r\n","import { Component, OnInit, Optional, Input, Output, EventEmitter } from '@angular/core';\r\nimport { BaseComponent } from '../base/base.component';\r\nimport { SettingValueModel, UpdateSettingValueModel } from 'ng-configcat-publicapi';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { PublicApiService } from '../_services';\r\nimport { SettingValuesModel, UpdateSettingValuesModel } from '../_models';\r\n\r\n@Component({\r\n selector: 'configcat-setting-item',\r\n templateUrl: './setting-item.component.html',\r\n styleUrls: ['./setting-item.component.scss']\r\n})\r\nexport class SettingItemComponent extends BaseComponent implements OnInit {\r\n\r\n @Input() productId: string;\r\n @Input() environmentId: string;\r\n @Input() configId: string;\r\n @Input() settingId: number;\r\n\r\n @Input() canEditSetting = true;\r\n @Input() canDeleteSetting = true;\r\n @Input() deleteSettingText = 'Delete setting';\r\n @Input() showEnvironmentName = true;\r\n\r\n @Output() editSettingRequested = new EventEmitter();\r\n @Output() deleteSettingRequested = new EventEmitter();\r\n\r\n @Output() loadSucceeded = new EventEmitter();\r\n @Output() loadFailed = new EventEmitter();\r\n @Output() saveSucceeded = new EventEmitter();\r\n @Output() saveFailed = new EventEmitter();\r\n\r\n @Output() formValuesChanged = new EventEmitter();\r\n\r\n settingValue: SettingValueModel;\r\n\r\n constructor(\r\n publicApiService: PublicApiService) {\r\n super(publicApiService);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n loadSettingValues = (): Observable<SettingValuesModel> => {\r\n return this.createSettingValuesService().getSettingValue(this.environmentId, this.settingId)\r\n .pipe(\r\n map(settingValue => {\r\n this.settingValue = settingValue;\r\n\r\n const settingValues = {\r\n settingValues: [settingValue],\r\n readOnly: settingValue.readOnly,\r\n config: settingValue.config,\r\n environment: settingValue.environment\r\n } as SettingValuesModel;\r\n\r\n this.loadSucceeded.emit(settingValues);\r\n return settingValues;\r\n }),\r\n catchError(error => {\r\n this.loadFailed.emit(error);\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n handleSave = (model: UpdateSettingValuesModel): Observable<SettingValuesModel> => {\r\n if (model.settingValues.length === 0) {\r\n return;\r\n }\r\n const updateModel = model.settingValues[0] as UpdateSettingValueModel;\r\n\r\n return this.createSettingValuesService().replaceSettingValue(\r\n this.environmentId, this.settingId, updateModel, model.reason)\r\n .pipe(\r\n map(settingValue => {\r\n this.settingValue = settingValue;\r\n\r\n const settingValues = {\r\n settingValues: [settingValue],\r\n readOnly: settingValue.readOnly,\r\n config: settingValue.config,\r\n environment: settingValue.environment\r\n } as SettingValuesModel;\r\n\r\n this.saveSucceeded.emit(settingValues);\r\n return settingValues;\r\n }),\r\n catchError(error => {\r\n this.saveFailed.emit(error);\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n onEditSettingRequested(setting) {\r\n this.editSettingRequested.emit({\r\n setting: setting.setting,\r\n environment: this.settingValue.environment,\r\n config: this.settingValue.config\r\n });\r\n }\r\n\r\n onDeleteSettingRequested(setting) {\r\n this.deleteSettingRequested.emit({\r\n setting: setting.setting,\r\n environment: this.settingValue.environment,\r\n config: this.settingValue.config\r\n });\r\n }\r\n\r\n onFormValuesChanged() {\r\n this.formValuesChanged.emit();\r\n }\r\n}\r\n","import { Component, OnInit, Optional, Input, Output, EventEmitter, OnChanges } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { SettingModel } from 'ng-configcat-publicapi';\r\nimport { FormControl } from '@angular/forms';\r\nimport { PublicApiService } from '../../_services';\r\n\r\n@Component({\r\n selector: 'configcat-setting-select',\r\n templateUrl: './setting-select.component.html',\r\n styleUrls: ['./setting-select.component.css']\r\n})\r\nexport class SettingSelectComponent extends BaseComponent implements OnInit, OnChanges {\r\n\r\n @Input() valueFormControl: FormControl;\r\n @Input() configId: string;\r\n settings: SettingModel[];\r\n\r\n constructor(\r\n publicApiService: PublicApiService) {\r\n super(publicApiService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.settings = [];\r\n this.reloadSettings();\r\n }\r\n\r\n ngOnChanges() {\r\n this.reloadSettings();\r\n }\r\n\r\n reloadSettings() {\r\n if (this.configId) {\r\n this.createSettingsService().getSettings(this.configId).subscribe(settings => {\r\n this.settings = settings;\r\n if (this.settings.length > 0) {\r\n this.valueFormControl.setValue(this.settings[0].settingId);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Optional, Input, Output, EventEmitter, OnChanges } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { ProductModel } from 'ng-configcat-publicapi';\r\nimport { FormControl } from '@angular/forms';\r\nimport { PublicApiService } from '../../_services';\r\n\r\n@Component({\r\n selector: 'configcat-product-select',\r\n templateUrl: './product-select.component.html',\r\n styleUrls: ['./product-select.component.css']\r\n})\r\nexport class ProductSelectComponent extends BaseComponent implements OnInit {\r\n\r\n @Input() valueFormControl: FormControl;\r\n products: ProductModel[];\r\n\r\n constructor(\r\n publicApiService: PublicApiService) {\r\n super(publicApiService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.products = [];\r\n this.createProductsService().getProducts().subscribe(products => {\r\n this.products = products;\r\n if (this.products.length > 0) {\r\n this.valueFormControl.setValue(this.products[0].productId, {\r\n emitEvent: true,\r\n emitModelToViewChange: true, emitViewToModelChange: true\r\n });\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject, Input, Optional, Output, EventEmitter, OnChanges, forwardRef } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { ConfigModel } from 'ng-configcat-publicapi';\r\nimport { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\nimport { PublicApiService } from '../../_services';\r\n\r\n@Component({\r\n selector: 'configcat-config-select',\r\n templateUrl: './config-select.component.html',\r\n styleUrls: ['./config-select.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConfigSelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class ConfigSelectComponent extends BaseComponent implements OnInit, OnChanges {\r\n\r\n @Input() valueFormControl: FormControl;\r\n @Input() productId: string;\r\n configs: ConfigModel[];\r\n\r\n constructor(\r\n publicApiService: PublicApiService) {\r\n super(publicApiService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.configs = [];\r\n this.reloadConfigs();\r\n }\r\n\r\n ngOnChanges() {\r\n this.reloadConfigs();\r\n }\r\n\r\n reloadConfigs() {\r\n if (this.productId) {\r\n this.createConfigsService().getConfigs(this.productId).subscribe(configs => {\r\n this.configs = configs;\r\n if (this.configs.length > 0) {\r\n this.valueFormControl.setValue(this.configs[0].configId);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Optional, Input, Output, EventEmitter, OnChanges } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { EnvironmentModel } from 'ng-configcat-publicapi';\r\nimport { FormControl } from '@angular/forms';\r\nimport { PublicApiService } from '../../_services';\r\n\r\n@Component({\r\n selector: 'configcat-environment-select',\r\n templateUrl: './environment-select.component.html',\r\n styleUrls: ['./environment-select.component.css']\r\n})\r\nexport class EnvironmentSelectComponent extends BaseComponent implements OnInit, OnChanges {\r\n\r\n @Input() valueFormControl: FormControl;\r\n @Input() productId: string;\r\n environments: EnvironmentModel[];\r\n\r\n constructor(\r\n publicApiService: PublicApiService) {\r\n super(publicApiService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.environments = [];\r\n this.reloadEnvironments();\r\n }\r\n\r\n ngOnChanges() {\r\n this.reloadEnvironments();\r\n }\r\n\r\n reloadEnvironments() {\r\n if (this.productId) {\r\n this.createEnvironmentsService().getEnvironments(this.productId).subscribe(environments => {\r\n this.environments = environments;\r\n if (this.environments.length > 0) {\r\n this.valueFormControl.setValue(this.environments[0].environmentId);\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { AbstractControl } from '@angular/forms';\r\n\r\nexport class FormHelper {\r\n\r\n public static getErrorMessage(control: AbstractControl, hint: string = '') {\r\n if (!control || control.valid) {\r\n return;\r\n }\r\n\r\n if (control.hasError('required')) {\r\n return `${hint} The field is required.`;\r\n }\r\n\r\n if (control.hasError('pattern')) {\r\n return 'Not a valid e-mail address.';\r\n }\r\n\r\n if (control.hasError('minlength')) {\r\n return 'The field must be at least ' + control.errors.minlength.requiredLength + ' characters long';\r\n }\r\n\r\n if (control.hasError('maxlength')) {\r\n return 'The field must be at max ' + control.errors.maxlength.requiredLength + ' characters long';\r\n }\r\n\r\n return;\r\n }\r\n}\r\n","import { Component, OnInit, Optional, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { PublicApiService } from '../_services';\r\nimport { FormHelper } from '../_services/form-helper';\r\n\r\n@Component({\r\n selector: 'configcat-authorization',\r\n templateUrl: './authorization.component.html',\r\n styleUrls: ['./authorization.component.scss']\r\n})\r\nexport class AuthorizationComponent implements OnInit {\r\n\r\n formGroup: FormGroup;\r\n @Input() basePath = null;\r\n @Output() authorized = new EventEmitter();\r\n FormHelper = FormHelper;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private publicApiService: PublicApiService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.formGroup = this.formBuilder.group({\r\n basicAuthUsername: ['', Validators.required],\r\n basicAuthPassword: ['', Validators.required],\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.formGroup.valid) {\r\n return;\r\n }\r\n\r\n const meService = this.publicApiService.createMeService(\r\n this.formGroup.controls.basicAuthUsername.value,\r\n this.formGroup.controls.basicAuthPassword.value,\r\n this.basePath);\r\n\r\n meService.getMe().subscribe(me => {\r\n this.authorized.emit({\r\n basicAuthUsername: this.formGroup.controls.basicAuthUsername.value,\r\n basicAuthPassword: this.formGroup.controls.basicAuthPassword.value\r\n });\r\n },\r\n error => {\r\n this.formGroup.setErrors({ invalidAuthorization: 'Invalid Basic auth user name or password' });\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'configcat-concurrent-dialog',\r\n templateUrl: './concurrent-dialog.component.html',\r\n styleUrls: ['./concurrent-dialog.component.scss']\r\n})\r\nexport class ConcurrentDialogComponent implements OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<ConcurrentDialogComponent>\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n save() {\r\n this.dialogRef.close({ button: 'save' });\r\n }\r\n\r\n discard() {\r\n this.dialogRef.close({ button: 'discard' });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject, OnDestroy } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'configcat-expand-dialog',\r\n templateUrl: './expand-dialog.component.html',\r\n styleUrls: ['./expand-dialog.component.scss']\r\n})\r\nexport class ExpandDialogComponent implements OnInit, OnDestroy {\r\n\r\n formControlSubscription: Subscription;\r\n formGroupSubscription: Subscription;\r\n\r\n formGroup: FormGroup;\r\n\r\n constructor(public dialogRef: MatDialogRef<ExpandDialogComponent>,\r\n private formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.data.multiline) {\r\n this.buildFormGroup();\r\n } else {\r\n this.formControlSubscription = this.data.control.valueChanges.subscribe(value => {\r\n this.data.control.setValue(value, { onlySelf: true, emitEvent: false, emitModelToViewChange: true });\r\n this.data.control.markAsDirty();\r\n }, error => { }, () => { });\r\n }\r\n }\r\n\r\n values() {\r\n return this.formGroup.get('values') as FormArray;\r\n }\r\n\r\n buildFormGroup() {\r\n const value = this.data.control.value ? this.data.control.value : '';\r\n const list = value.split(',').map(v => v.trim()).filter(v => !!v);\r\n this.formGroup = this.formBuilder.group({\r\n values: this.formBuilder.array(list.map(v => this.formBuilder.control(v)))\r\n });\r\n this.formGroupSubscription = this.formGroup.valueChanges.subscribe((formGroupValue) => {\r\n this.data.control.setValue(formGroupValue.values\r\n .filter(v => !!v)\r\n .join(','), { onlySelf: true, emitEvent: false, emitModelToViewChange: true });\r\n this.data.control.updateValueAndValidity();\r\n this.data.control.markAsDirty();\r\n });\r\n }\r\n\r\n add() {\r\n (this.formGroup.controls.values as FormArray).push(this.formBuilder.control(''));\r\n }\r\n\r\n remove(index) {\r\n (this.formGroup.controls.values as FormArray).removeAt(index);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.formControlSubscription) {\r\n this.formControlSubscription.unsubscribe();\r\n this.formControlSubscription = null;\r\n }\r\n\r\n if (this.formGroupSubscription) {\r\n this.formGroupSubscription.unsubscribe();\r\n this.formGroupSubscription = null;\r\n }\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'configcat-reason-dialog',\r\n templateUrl: './reason-dialog.component.html',\r\n styleUrls: ['./reason-dialog.component.scss']\r\n})\r\nexport class ReasonDialogComponent implements OnInit {\r\n\r\n formGroup: FormGroup;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<ReasonDialogComponent>,\r\n private formBuilder: FormBuilder\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.formGroup = this.formBuilder.group({\r\n reason: ['', [Validators.required, Validators.maxLength(1000)]]\r\n });\r\n }\r\n\r\n handleSaveButton() {\r\n if (!this.formGroup.valid) {\r\n return;\r\n }\r\n\r\n this.dialogRef.close({ button: 'save', reason: this.formGroup.controls.reason.value });\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close({ button: 'cancel' });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'configcat-save-snackbar',\r\n templateUrl: './save-snackbar.component.html',\r\n styleUrls: ['./save-snackbar.component.scss']\r\n})\r\nexport class SaveSnackbarComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormGroup, FormArray, FormControl } from '@angular/forms';\r\nimport { SettingType } from 'ng-configcat-publicapi';\r\n\r\n@Component({\r\n selector: 'configcat-rollout-percentage-items',\r\n templateUrl: './rollout-percentage-items.component.html',\r\n styleUrls: ['./rollout-percentage-items.component.scss']\r\n})\r\nexport class RolloutPercentageItemsComponent {\r\n\r\n @Input() formGroup: FormGroup;\r\n @Input() readOnly: boolean;\r\n SettingType = SettingType;\r\n\r\n\r\n setting() {\r\n return this.formGroup.get('setting').value;\r\n }\r\n\r\n rolloutRules() {\r\n return this.formGroup.get('rolloutRules') as FormArray;\r\n }\r\n\r\n rolloutPercentageItems() {\r\n return this.formGroup.get('rolloutPercentageItems') as FormArray;\r\n }\r\n\r\n rolloutPercentageItemsSum() {\r\n return this.formGroup.get('rolloutPercentageItemsSum') as FormControl;\r\n }\r\n\r\n value(rolloutPercentageItem: FormGroup) {\r\n return this.setting().settingType === SettingType.Boolean ?\r\n rolloutPercentageItem.get('valueDisabled') as FormControl :\r\n rolloutPercentageItem.get('value') as FormControl;\r\n }\r\n\r\n constructor() { }\r\n\r\n percentageChanged(index) {\r\n if (this.rolloutPercentageItems().controls[index].value.percentage < 0) {\r\n (this.rolloutPercentageItems().controls[index] as FormGroup).controls.percentage.setValue(0);\r\n }\r\n if (this.rolloutPercentageItems().controls[index].value.percentage > 100) {\r\n (this.rolloutPercentageItems().controls[index] as FormGroup).controls.percentage.setValue(100);\r\n }\r\n\r\n if (this.rolloutPercentageItems().controls.length === 2) {\r\n (this.rolloutPercentageItems().controls[1 - index] as FormGroup).controls.percentage\r\n .setValue(100 - this.rolloutPercentageItems().controls[index].value.percentage);\r\n }\r\n\r\n this.updateSum();\r\n }\r\n\r\n updateSum() {\r\n if (this.rolloutPercentageItems().controls.length === 0) {\r\n this.rolloutPercentageItemsSum().setValue(100);\r\n } else {\r\n this.rolloutPercentageItemsSum().setValue(\r\n this.rolloutPercentageItems().controls.map(v => v.value.percentage)\r\n .reduce((a, b) => a + b)\r\n );\r\n }\r\n }\r\n\r\n removeRolloutPercentageItem(index) {\r\n this.rolloutPercentageItems().removeAt(index);\r\n this.rolloutPercentageItems().markAsDirty();\r\n this.updateSum();\r\n }\r\n\r\n removeAll() {\r\n this.rolloutPercentageItems().clear();\r\n this.rolloutPercentageItems().markAsDirty();\r\n this.updateSum();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormGroup, FormControl, FormArray, Validators } from '@angular/forms';\r\nimport { moveItemInArray, CdkDragDrop } from '@angular/cdk/drag-drop';\r\nimport * as semver from 'semver';\r\nimport { ExpandDialogComponent } from '../../../dialogs/expand-dialog/expand-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SettingType, RolloutRuleComparator } from 'ng-configcat-publicapi';\r\n\r\n@Component({\r\n selector: 'configcat-rollout-rules',\r\n templateUrl: './rollout-rules.component.html',\r\n styleUrls: ['./rollout-rules.component.scss']\r\n})\r\nexport class RolloutRulesComponent {\r\n\r\n @Input() formGroup: FormGroup;\r\n @Input() readOnly: boolean;\r\n\r\n SettingType = SettingType;\r\n\r\n defaultComparisonAttributes = ['Identifier', 'Email', 'Country'];\r\n\r\n rolloutRuleComparators = [\r\n { value: RolloutRuleComparator.IsOneOf, label: 'IS ONE OF' },\r\n { value: RolloutRuleComparator.IsNotOneOf, label: 'IS NOT ONE OF' },\r\n { value: RolloutRuleComparator.Contains, label: 'CONTAINS' },\r\n { value: RolloutRuleComparator.DoesNotContain, label: 'DOES NOT CONTAIN' },\r\n\r\n { value: RolloutRuleComparator.SemVerIsOneOf, label: 'IS ONE OF (SemVer)' },\r\n { value: RolloutRuleComparator.SemVerIsNotOneOf, label: 'IS NOT ONE OF (SemVer)' },\r\n { value: RolloutRuleComparator.SemVerLess, label: '< (SemVer)' },\r\n { value: RolloutRuleComparator.SemVerLessOrEquals, label: '<= (SemVer)' },\r\n { value: RolloutRuleComparator.SemVerGreater, label: '> (SemVer)' },\r\n { value: RolloutRuleComparator.SemVerGreaterOrEquals, label: '>= (SemVer)' },\r\n\r\n { value: RolloutRuleComparator.NumberEquals, label: '= (Number)' },\r\n { value: RolloutRuleComparator.NumberDoesNotEqual, label: '!= (Number)' },\r\n { value: RolloutRuleComparator.NumberLess, label: '< (Number)' },\r\n { value: RolloutRuleComparator.NumberLessOrEquals, label: '<= (Number)' },\r\n { value: RolloutRuleComparator.NumberGreater, label: '> (Number)' },\r\n { value: RolloutRuleComparator.NumberGreaterOrEquals, label: '>= (Number)' },\r\n\r\n { value: RolloutRuleComparator.SensitiveIsOneOf, label: 'IS ONE OF (Sensitive)' },\r\n { value: RolloutRuleComparator.SensitiveIsNotOneOf, label: 'IS NOT ONE OF (Sensitive)' },\r\n ];\r\n\r\n constructor(private dialog: MatDialog) { }\r\n\r\n onlyFirstTooltip() {\r\n return this.formGroup.root.get('allRolloutRulesCount').value > 20 || this.rolloutRules().controls.length > 10;\r\n }\r\n\r\n setting() {\r\n return this.formGroup.get('setting').value;\r\n }\r\n\r\n rolloutRules() {\r\n return this.formGroup.get('rolloutRules') as FormArray;\r\n }\r\n\r\n comparisonAttributes() {\r\n return this.formGroup.root.get('comparisonAttributes').value;\r\n }\r\n\r\n removeRule(index) {\r\n this.rolloutRules().removeAt(index);\r\n this.rolloutRules().markAsDirty();\r\n }\r\n\r\n onDrop(event: CdkDragDrop<string[]>) {\r\n const rolloutRules = this.rolloutRules().controls;\r\n moveItemInArray(rolloutRules, event.previousIndex, event.currentIndex);\r\n this.formGroup.markAsDirty();\r\n }\r\n\r\n attributeChanged(event: any, comparisonAttribute: FormControl) {\r\n if (this.defaultComparisonAttributes.indexOf(event) !== -1) {\r\n if (comparisonAttribute.value !== event) {\r\n comparisonAttribute.setValue(event);\r\n this.formGroup.markAsDirty();\r\n }\r\n } else {\r\n if (comparisonAttribute.value !== '') {\r\n comparisonAttribute.setValue('');\r\n this.formGroup.markAsDirty();\r\n }\r\n }\r\n }\r\n\r\n getPlaceHolder(rolloutRule) {\r\n if (!rolloutRule.controls.comparisonAttribute.value) {\r\n return '';\r\n }\r\n\r\n switch (rolloutRule.controls.comparator.value) {\r\n case RolloutRuleComparator.IsOneOf:\r\n case RolloutRuleComparator.IsNotOneOf:\r\n case RolloutRuleComparator.SensitiveIsOneOf:\r\n case RolloutRuleComparator.SensitiveIsNotOneOf:\r\n switch (rolloutRule.controls.comparisonAttribute.value.toLowerCase()) {\r\n case 'identifier':\r\n return 'e.g: user_id1, user_id2, user_id3';\r\n case 'email':\r\n return 'e.g: jane@example.com, john@example.com';\r\n case 'country':\r\n return 'e.g: France, Brazil';\r\n default:\r\n return 'e.g: value1, value2, value3';\r\n }\r\n case RolloutRuleComparator.Contains:\r\n case RolloutRuleComparator.DoesNotContain:\r\n switch (rolloutRule.controls.comparisonAttribute.value.toLowerCase()) {\r\n case 'identifier':\r\n return 'part-of-id';\r\n case 'email':\r\n return 'e.g: @example.com';\r\n case 'country':\r\n return 'e.g: United';\r\n default:\r\n return 'e.g: any-part-of-your-value-string';\r\n }\r\n case RolloutRuleComparator.SemVerIsOneOf:\r\n case RolloutRuleComparator.SemVerIsNotOneOf:\r\n return 'e.g: 1.0.0, 2.0.1';\r\n case RolloutRuleComparator.SemVerLessOrEquals:\r\n case RolloutRuleComparator.SemVerLess:\r\n case RolloutRuleComparator.SemVerGreater:\r\n case RolloutRuleComparator.SemVerGreaterOrEquals:\r\n return 'e.g: 1.0.0';\r\n case RolloutRuleComparator.NumberEquals:\r\n case RolloutRuleComparator.NumberDoesNotEqual:\r\n case RolloutRuleComparator.NumberLess:\r\n case RolloutRuleComparator.NumberLessOrEquals:\r\n case RolloutRuleComparator.NumberGreater:\r\n case RolloutRuleComparator.NumberGreaterOrEquals:\r\n return 'e.g: 42';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n getComparisonValueType(rolloutRule) {\r\n switch (rolloutRule.controls.comparator.value) {\r\n case RolloutRuleComparator.NumberEquals:\r\n case RolloutRuleComparator.NumberDoesNotEqual:\r\n case RolloutRuleComparator.NumberLess:\r\n case RolloutRuleComparator.NumberLessOrEquals:\r\n case RolloutRuleComparator.NumberGreater:\r\n case RolloutRuleComparator.NumberGreaterOrEquals:\r\n return 'number';\r\n default:\r\n return 'text';\r\n }\r\n }\r\n\r\n getInfoClass(rolloutRule) {\r\n if (!rolloutRule.controls.comparisonAttribute.value) {\r\n return 'info';\r\n }\r\n\r\n switch (rolloutRule.controls.comparator.value) {\r\n case RolloutRuleComparator.IsOneOf:\r\n case RolloutRuleComparator.IsNotOneOf:\r\n case RolloutRuleComparator.Contains:\r\n case RolloutRuleComparator.DoesNotContain:\r\n return 'warn';\r\n default:\r\n return 'info';\r\n }\r\n }\r\n\r\n getInfoTooltip(rolloutRule) {\r\n if (!rolloutRule.controls.comparisonAttribute.value) {\r\n return 'Learn more about comparators';\r\n }\r\n\r\n switch (rolloutRule.controls.comparator.value) {\r\n case RolloutRuleComparator.IsOneOf:\r\n case RolloutRuleComparator.IsNotOneOf:\r\n case RolloutRuleComparator.Contains:\r\n case RolloutRuleComparator.DoesNotContain:\r\n return 'Consider using sensitive text comparators. Click to learn more.';\r\n default:\r\n return 'Click to learn more about comparators';\r\n }\r\n }\r\n\r\n comparatorChanged(rolloutRule) {\r\n let validators = [];\r\n\r\n switch (rolloutRule.controls.comparator.value) {\r\n case RolloutRuleComparator.IsOneOf:\r\n case RolloutRuleComparator.IsNotOneOf:\r\n case RolloutRuleComparator.SensitiveIsOneOf:\r\n case RolloutRuleComparator.SensitiveIsNotOneOf:\r\n case RolloutRuleComparator.Contains:\r\n case RolloutRuleComparator.DoesNotContain:\r\n validators = [Validators.required, Validators.maxLength(65535)];\r\n break;\r\n case RolloutRuleComparator.SemVerIsOneOf:\r\n case RolloutRuleComparator.SemVerIsNotOneOf:\r\n validators = [Validators.required, this.validateSemVerList];\r\n break;\r\n case RolloutRuleComparator.SemVerLessOrEquals:\r\n case RolloutRuleComparator.SemVerLess:\r\n case RolloutRuleComparator.SemVerGreater:\r\n case RolloutRuleComparator.SemVerGreaterOrEquals:\r\n validators = [Validators.required, this.validateSemVer];\r\n break;\r\n case RolloutRuleComparator.NumberEquals:\r\n case RolloutRuleComparator.NumberDoesNotEqual:\r\n case RolloutRuleComparator.NumberLess:\r\n case RolloutRuleComparator.NumberLessOrEquals:\r\n case RolloutRuleComparator.NumberGreater:\r\n case RolloutRuleComparator.NumberGreaterOrEquals:\r\n validators = [Validators.required, Validators.min(-1.79769313486232E+308), Validators.max(1.79769313486232E+308)];\r\n break;\r\n }\r\n\r\n rolloutRule.controls.comparisonValue.setValidators(validators);\r\n rolloutRule.controls.comparisonValue.updateValueAndValidity();\r\n }\r\n\r\n isListType(rolloutRule) {\r\n switch (rolloutRule.controls.comparator.value) {\r\n case RolloutRuleComparator.IsOneOf:\r\n case RolloutRuleComparator.IsNotOneOf:\r\n case RolloutRuleComparator.SensitiveIsOneOf:\r\n case RolloutRuleComparator.SensitiveIsNotOneOf:\r\n case RolloutRuleComparator.SemVerIsOneOf:\r\n case RolloutRuleComparator.SemVerIsNotOneOf:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n validateSemVer(c: FormControl) {\r\n\r\n if (semver.valid(c.value) === null) {\r\n return {\r\n validateSemVer: {\r\n valid: false\r\n }\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validateSemVerList(c: FormControl) {\r\n if (!c.value) {\r\n return {\r\n validateSemVerList: {\r\n valid: false\r\n }\r\n };\r\n }\r\n\r\n const semvers = c.value.split(',').map(s => s.trim());\r\n if (semvers.find(s => s && s !== '' && semver.valid(s) === null)) {\r\n return {\r\n validateSemVerList: {\r\n valid: false\r\n }\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n popOut(rolloutRule: any) {\r\n this.dialog.open(ExpandDialogComponent, {\r\n width: '640px',\r\n data: {\r\n control: rolloutRule.controls.comparisonValue,\r\n multiline: this.isListType(rolloutRule)\r\n }\r\n });\r\n }\r\n\r\n\r\n trackByIndex(index: number): any {\r\n return index;\r\n }\r\n}\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ExpandDialogComponent } from '../../../dialogs/expand-dialog/expand-dialog.component';\r\nimport { SettingModel, SettingType } from 'ng-configcat-publicapi';\r\n\r\n@Component({\r\n selector: 'configcat-value',\r\n templateUrl: './value.component.html',\r\n styleUrls: [\r\n './slider.scss',\r\n './value.component.scss'\r\n ]\r\n})\r\nexport class ValueComponent {\r\n\r\n @Input() valueFormControl: FormControl;\r\n\r\n @Input() setting: SettingModel;\r\n\r\n SettingType = SettingType;\r\n\r\n constructor(private dialog: MatDialog) {\r\n }\r\n\r\n popOut() {\r\n this.dialog.open(ExpandDialogComponent, {\r\n width: '640px',\r\n data: { control: this.valueFormControl }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SettingValuesModel } from '../_models/settingValuesModel';\r\nimport { FormBuilder, Validators, FormGroup, FormArray } from '@angular/forms';\r\nimport { RolloutPercentageItemModel, RolloutRuleModel, SettingType, SettingValueModel } from 'ng-configcat-publicapi';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SettingListFormHelper {\r\n\r\n constructor(private formBuilder: FormBuilder) { }\r\n\r\n createSettingValuesFormGroup(settingValuesModel: SettingValuesModel) {\r\n const formGroup = this.formBuilder.group({\r\n settingValues: this.formBuilder.array(\r\n settingValuesModel.settingValues.map(sv => {\r\n return this.createSettingValueFormGroup(sv, settingValuesModel.readOnly);\r\n })),\r\n\r\n // Decorator\r\n environment: this.formBuilder.group({\r\n environmentId: [{ value: settingValuesModel.environment.environmentId, disabled: true }],\r\n name: [{ value: settingValuesModel.environment.name, disabled: true }],\r\n }),\r\n\r\n comparisonAttributes: [[]],\r\n allRolloutRulesCount: [0]\r\n });\r\n\r\n const rolloutRules = this.getAllRolloutRules(formGroup);\r\n const comparisonAttributes = this.getComparisonAttributes(rolloutRules);\r\n formGroup.patchValue({ allRolloutRulesCount: rolloutRules.length });\r\n formGroup.patchValue({ comparisonAttributes: comparisonAttributes });\r\n return formGroup;\r\n }\r\n\r\n createSettingValueFormGroup(settingValueModel: SettingValueModel, readOnly: boolean) {\r\n return this.formBuilder.group({\r\n settingId: [settingValueModel.setting.settingId],\r\n value: [\r\n { value: settingValueModel.value, disabled: readOnly },\r\n this.getValidatorsForSettingType(settingValueModel.setting.settingType)\r\n ],\r\n rolloutPercentageItems: this.formBuilder.array(settingValueModel.rolloutPercentageItems.map(p => {\r\n return this.createRolloutPercentageItemFormGroup(p, readOnly, settingValueModel.setting.settingType);\r\n })),\r\n rolloutRules: this.formBuilder.array(settingValueModel.rolloutRules.map(r => {\r\n return this.createRolloutRuleFormGroup(r, readOnly, settingValueModel.setting.settingType);\r\n })),\r\n\r\n updatedAt: [{ value: settingValueModel.updatedAt, disabled: true}],\r\n lastUpdaterUserEmail: [{ value: settingValueModel.lastUpdaterUserEmail, disabled: true }],\r\n lastUpdaterUserFullName: [{ value: settingValueModel.lastUpdaterUserFullName, disabled: true }],\r\n\r\n rolloutPercentageItemsSum: [{ value: 100, disabled: false }, [Validators.min(100), Validators.max(100)]],\r\n // Decoration\r\n setting: this.formBuilder.group({\r\n settingId: [{ value: settingValueModel.setting.settingId, disabled: true }],\r\n key: [{ value: settingValueModel.setting.key, disabled: true }],\r\n name: [{ value: settingValueModel.setting.name, disabled: true }],\r\n hint: [{ value: settingValueModel.setting.hint, disabled: true }],\r\n settingType: [{ value: settingValueModel.setting.settingType, disabled: true }],\r\n creatorEmail: [{ value: settingValueModel.setting.creatorEmail, disabled: true }],\r\n creatorFullName: [{ value: settingValueModel.setting.creatorFullName, disabled: true }],\r\n createdAt: [{ value: settingValueModel.setting.createdAt, disabled: true }]\r\n }),\r\n\r\n integrationLinks: this.formBuilder.array(settingValueModel.integrationLinks.map(il => {\r\n return this.formBuilder.group({\r\n key: [{ value: il.key, disabled: true }],\r\n description: [{ value: il.description, disabled: true }],\r\n integrationLinkType: [{ value: il.integrationLinkType, disabled: true }],\r\n url: [{ value: il.url, disabled: true }],\r\n });\r\n }))\r\n });\r\n }\r\n\r\n createRolloutPercentageItemFormGroup(p: RolloutPercentageItemModel, readOnly: boolean, settingType: SettingType) {\r\n return this.formBuilder.group({\r\n percentage: [{ value: p.percentage, disabled: readOnly }, [Validators.required, Validators.min(0), Validators.max(100)]],\r\n value: [\r\n { value: p.value, disabled: readOnly },\r\n\r\n [].concat(...[Validators.required, this.getValidatorsForSettingType(settingType)])\r\n ],\r\n valueDisabled: [\r\n { value: p.value, disabled: true }, // For percentage item value\r\n ]\r\n });\r\n }\r\n\r\n createRolloutRuleFormGroup(r: RolloutRuleModel, readOnly: boolean, settingType: SettingType) {\r\n return this.formBuilder.group({\r\n comparisonAttribute: [{ value: r.comparisonAttribute, disabled: readOnly }, [Validators.required]],\r\n comparator: [{ value: r.comparator, disabled: readOnly }, [Validators.required]],\r\n comparisonValue: [{ value: r.comparisonValue, disabled: readOnly }, [Validators.required]],\r\n value: [\r\n { value: r.value, disabled: readOnly },\r\n this.getValidatorsForSettingType(settingType)\r\n ],\r\n });\r\n }\r\n\r\n private getValidatorsForSettingType(settingType: SettingType) {\r\n switch (settingType) {\r\n case SettingType.Int:\r\n return [Validators.required,\r\n Validators.min(-2147483648), Validators.max(2147483647), Validators.pattern('^[-+]?[0-9]\\\\d*$')];\r\n case SettingType.Double:\r\n return [Validators.required, Validators.min(-1.79769313486232E+308), Validators.max(1.79769313486232E+308)];\r\n case SettingType.String:\r\n case SettingType.Boolean:\r\n return [Validators.required];\r\n default:\r\n return [];\r\n }\r\n }\r\n\r\n private getAllRolloutRules(formGroup: FormGroup) {\r\n const settingValues = formGroup.get('settingValues') as FormArray;\r\n const rolloutRules = settingValues.controls.map(cv => (cv.get('rolloutRules') as FormArray).value);\r\n return rolloutRules.length === 0 ? rolloutRules : rolloutRules.reduce((a, b) => a.concat(b));\r\n }\r\n\r\n private getComparisonAttributes(rolloutRules: any[]) {\r\n if (rolloutRules.length > 0) {\r\n const currentComparisonAttributes = rolloutRules.map(r => r.comparisonAttribute);\r\n\r\n const defaultComparisonAttributes = ['Identifier', 'Email', 'Country'];\r\n const comparisonAttributes = currentComparisonAttributes.filter(c => defaultComparisonAttributes.indexOf(c) === -1);\r\n return Array.from(new Set(comparisonAttributes));\r\n } else {\r\n return [];\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, OnChanges } from '@angular/core';\r\nimport { SettingValuesModel, UpdateSettingValuesModel } from '../_models';\r\nimport { FormArray, FormGroup } from '@angular/forms';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ReasonDialogComponent } from '../dialogs/reason-dialog/reason-dialog.component';\r\nimport { SaveSnackbarComponent } from '../dialogs/save-snackbar/save-snackbar.component';\r\nimport { ConcurrentDialogComponent } from '../dialogs/concurrent-dialog/concurrent-dialog.component';\r\nimport { SettingListFormHelper } from '../_services/setting-list-form-helper';\r\n\r\n@Component({\r\n selector: 'configcat-setting-list',\r\n templateUrl: './setting-list.component.html',\r\n styleUrls: ['./setting-list.component.scss']\r\n})\r\nexport class SettingListComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() canEditSetting: boolean;\r\n @Input() canDeleteSetting: boolean;\r\n\r\n @Input() onSave: (value: UpdateSettingValuesModel) => Observable<SettingValuesModel>;\r\n @Input() loadSettingValues: () => Observable<SettingValuesModel>;\r\n @Input() deleteSettingText = 'Delete setting';\r\n @Input() showEnvironmentName = false;\r\n\r\n @Output() editSettingRequested = new EventEmitter();\r\n @Output() deleteSettingRequested = new EventEmitter();\r\n @Output() formValuesChanged = new EventEmitter();\r\n\r\n formValuesChangedSubscription: Subscription;\r\n\r\n loading = true;\r\n\r\n settingValues: SettingValuesModel;\r\n formGroup: FormGroup;\r\n\r\n submitting = false;\r\n showRevertQuestion = false;\r\n showFeedBackMessage = false;\r\n readOnly = false;\r\n\r\n constructor(private formHelper: SettingListFormHelper,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.reloadSettingValues();\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.reloadSettingValues();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.formValuesChangedSubscription) {\r\n this.formValuesChangedSubscription.unsubscribe();\r\n this.formValuesChangedSubscription = null;\r\n }\r\n }\r\n\r\n reloadSettingValues() {\r\n this.showFeedBackMessage = false;\r\n this.loading = true;\r\n this.loadSettingValues()\r\n .subscribe(settingValues => {\r\n this.readOnly = settingValues.readOnly;\r\n this.settingValues = settingValues;\r\n this.createFormGroup();\r\n this.loading = false;\r\n },\r\n error => {\r\n this.snackBar.open('Ooops. We could not load your Feature Flags and Settings. Please try again or contact us.',\r\n 'Dismiss', { duration: 60000, panelClass: 'red-snackbar' });\r\n });\r\n }\r\n\r\n createFormGroup() {\r\n this.formGroup = this.formHelper.createSettingValuesFormGroup(this.settingValues);\r\n this.formValuesChangedSubscription = this.formGroup.valueChanges.subscribe(() => {\r\n this.formValuesChanged.emit();\r\n });\r\n }\r\n\r\n settingValuesFormArray() {\r\n return this.formGroup.get('settingValues') as FormArray;\r\n }\r\n\r\n submit() {\r\n if (!this.formGroup || !this.formGroup.valid) {\r\n this.showFeedBackMessage = true;\r\n this.formGroup.markAsTouched();\r\n return;\r\n }\r\n\r\n this.showFeedBackMessage = false;\r\n this.submitting = true;\r\n\r\n const updateSettingValuesModel = <UpdateSettingValuesModel>{\r\n settingValues: this.formGroup.controls.settingValues.value,\r\n knownLastUpdatedAt: this.settingValues.lastUpdatedAt,\r\n forced: false\r\n };\r\n\r\n if (this.settingValues.reasonRequired) {\r\n const dialogRef = this.dialog.open(ReasonDialogComponent, {\r\n width: '450px'\r\n });\r\n dialogRef.afterClosed()\r\n .subscribe(result => {\r\n if (result && result.button === 'save' && result.reason) {\r\n\r\n updateSettingValuesModel.reason = result.reason;\r\n this.updateSettingValues(updateSettingValuesModel);\r\n } else {\r\n this.submitting = false;\r\n }\r\n });\r\n return;\r\n }\r\n\r\n this.updateSettingValues(updateSettingValuesModel);\r\n }\r\n\r\n updateSettingValues(updateSettingValuesModel) {\r\n this.onSave(updateSettingValuesModel).subscribe(settingValues => {\r\n this.settingValues = settingValues;\r\n this.createFormGroup();\r\n this.submitting = false;\r\n this.snackBar.openFromComponent(SaveSnackbarComponent, { duration: 5000, panelClass: 'green-snackbar' });\r\n }, (error) => {\r\n if (error.status === 400 && error.error\r\n && error.error.KnownLastUpdatedAt && error.error.KnownLastUpdatedAt[0] === 'Concurrent update') {\r\n const dialogRef = this.dialog.open(ConcurrentDialogComponent, {\r\n width: '560px'\r\n });\r\n dialogRef.afterClosed()\r\n .subscribe(result => {\r\n if (result && result.button === 'save') {\r\n updateSettingValuesModel.forced = true;\r\n this.updateSettingValues(updateSettingValuesModel);\r\n } else {\r\n this.reloadSettingValues();\r\n this.submitting = false;\r\n }\r\n });\r\n return;\r\n }\r\n\r\n if (error.status === 400 && error.error && error.error.Reason && error.error.Reason[0] === 'Reason required') {\r\n const dialogRef = this.dialog.open(ReasonDialogComponent, {\r\n width: '450px'\r\n });\r\n dialogRef.afterClosed()\r\n .subscribe(result => {\r\n if (result && result.button === 'save' && result.reason) {\r\n updateSettingValuesModel.reason = result.reason;\r\n this.updateSettingValues(updateSettingValuesModel);\r\n } else {\r\n this.submitting = false;\r\n }\r\n });\r\n return;\r\n }\r\n\r\n this.formGroup.setErrors({ internalServerError: 'Internal server error' });\r\n this.showFeedBackMessage = true;\r\n });\r\n }\r\n\r\n handleRevertYes() {\r\n this.showRevertQuestion = false;\r\n this.reloadSettingValues();\r\n }\r\n\r\n handleRevertCancel() {\r\n this.showRevertQuestion = false;\r\n }\r\n\r\n onEditSettingRequested(setting) {\r\n this.editSettingRequested.emit({\r\n setting: setting.setting,\r\n environment: this.settingValues.environment,\r\n config: this.settingValues.config\r\n });\r\n }\r\n\r\n onDeleteSettingRequested(setting) {\r\n this.deleteSettingRequested.emit({\r\n setting: setting.setting,\r\n environment: this.settingValues.environment,\r\n config: this.settingValues.config\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormArray, FormControl } from '@angular/forms';\r\nimport { RolloutPercentageItemModel, RolloutRuleComparator, RolloutRuleModel, SettingType } from 'ng-configcat-publicapi';\r\nimport { SettingListFormHelper } from '../../_services/setting-list-form-helper';\r\n\r\n@Component({\r\n selector: 'setting',\r\n templateUrl: './setting.component.html',\r\n styleUrls: ['./setting.component.scss']\r\n})\r\nexport class SettingComponent implements OnInit {\r\n\r\n @Input() formGroup: FormGroup;\r\n @Input() readOnly: boolean;\r\n @Input() canEditSetting: boolean;\r\n @Input() canDeleteSetting: boolean;\r\n @Input() deleteSettingText = 'Delete setting';\r\n @Input() showEnvironmentName = false;\r\n\r\n @Output() editSettingRequested = new EventEmitter();\r\n @Output() deleteSettingRequested = new EventEmitter();\r\n\r\n rulesBeingRendered = false;\r\n \r\n SettingType = SettingType;\r\n\r\n constructor(private formHelper: SettingListFormHelper,\r\n private cdRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {}\r\n\r\n environment() {\r\n return this.formGroup.root.get('environment').value;\r\n }\r\n\r\n setting() {\r\n return this.formGroup.get('setting').value;\r\n }\r\n\r\n integrationLinks() {\r\n return this.formGroup.get('integrationLinks') as FormArray;\r\n }\r\n\r\n rolloutRules() {\r\n return this.formGroup.get('rolloutRules') as FormArray;\r\n }\r\n\r\n rolloutPercentageItems() {\r\n return this.formGroup.get('rolloutPercentageItems') as FormArray;\r\n }\r\n\r\n value() {\r\n return this.formGroup.get('value') as FormControl;\r\n }\r\n\r\n addRolloutRule() {\r\n this.rolloutRules().push(this.formHelper.createRolloutRuleFormGroup(\r\n <RolloutRuleModel>{\r\n comparisonAttribute: 'Identifier',\r\n comparator: RolloutRuleComparator.SensitiveIsOneOf,\r\n comparisonValue: '',\r\n value: this.setting().settingType === SettingType.Boolean ? false as unknown : null\r\n },\r\n this.readOnly, this.setting().settingType));\r\n this.rolloutRules().markAsDirty();\r\n }\r\n\r\n removeRolloutRules() {\r\n this.rolloutRules().clear();\r\n this.rolloutRules().markAsDirty();\r\n }\r\n\r\n addRolloutPercentageItem() {\r\n\r\n if (this.rolloutPercentageItems().length === 0) {\r\n switch (this.setting().settingType) {\r\n case SettingType.Boolean:\r\n this.rolloutPercentageItems().push(this.formHelper.createRolloutPercentageItemFormGroup(\r\n <RolloutPercentageItemModel>{\r\n percentage: 0,\r\n value: true as unknown \r\n },\r\n this.readOnly, this.setting().settingType));\r\n this.rolloutPercentageItems().push(this.formHelper.createRolloutPercentageItemFormGroup(\r\n <RolloutPercentageItemModel>{\r\n percentage: 100,\r\n value: false as unknown \r\n },\r\n this.readOnly, this.setting().settingType));\r\n break;\r\n\r\n case SettingType.String:\r\n case SettingType.Int:\r\n case SettingType.Double:\r\n for (let i = 0; i < 4; i++) {\r\n this.rolloutPercentageItems().push(this.formHelper.createRolloutPercentageItemFormGroup(\r\n <RolloutPercentageItemModel>{\r\n percentage: 25,\r\n value: null\r\n },\r\n this.readOnly, this.setting().settingType));\r\n }\r\n\r\n break;\r\n }\r\n } else if (this.setting().settingType !== SettingType.Boolean) {\r\n this.rolloutPercentageItems().push(this.formHelper.createRolloutPercentageItemFormGroup(\r\n <RolloutPercentageItemModel>{\r\n percentage: 0,\r\n value: null\r\n },\r\n this.readOnly, this.setting().settingType));\r\n }\r\n\r\n this.rolloutPercentageItems().markAsDirty();\r\n }\r\n\r\n removeRolloutPercentageItems() {\r\n this.rolloutPercentageItems().clear();\r\n this.rolloutPercentageItems().markAsDirty();\r\n }\r\n\r\n editSetting() {\r\n this.editSettingRequested.emit({ setting: this.setting() });\r\n }\r\n\r\n deleteSetting() {\r\n this.deleteSettingRequested.emit({ setting: this.setting() });\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { SettingItemComponent } from './setting-item/setting-item.component';\r\nimport { SettingSelectComponent } from './selects/setting-select/setting-select.component';\r\nimport { ProductSelectComponent } from './selects/product-select/product-select.component';\r\nimport { ConfigSelectComponent } from './selects/config-select/config-select.component';\r\nimport { EnvironmentSelectComponent } from './selects/environment-select/environment-select.component';\r\nimport { Configuration } from './configuration';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ApiModule } from 'ng-configcat-publicapi';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AuthorizationComponent } from './authorization/authorization.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { ConcurrentDialogComponent } from './dialogs/concurrent-dialog/concurrent-dialog.component';\r\nimport { ExpandDialogComponent } from './dialogs/expand-dialog/expand-dialog.component';\r\nimport { ReasonDialogComponent } from './dialogs/reason-dialog/reason-dialog.component';\r\nimport { SaveSnackbarComponent } from './dialogs/save-snackbar/save-snackbar.component';\r\nimport { RolloutPercentageItemsComponent } from './setting-list/setting/rollout-percentage-items/rollout-percentage-items.component';\r\nimport { RolloutRulesComponent } from './setting-list/setting/rollout-rules/rollout-rules.component';\r\nimport { ValueComponent } from './setting-list/setting/value/value.component';\r\nimport { SettingListComponent } from './setting-list/setting-list.component';\r\nimport { SettingComponent } from './setting-list/setting/setting.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { BaseComponent } from './base/base.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n BaseComponent,\r\n ProductSelectComponent,\r\n ConfigSelectComponent,\r\n EnvironmentSelectComponent,\r\n SettingSelectComponent,\r\n SettingItemComponent,\r\n AuthorizationComponent,\r\n SettingListComponent,\r\n SettingComponent,\r\n RolloutPercentageItemsComponent,\r\n RolloutRulesComponent,\r\n ValueComponent,\r\n ReasonDialogComponent,\r\n ConcurrentDialogComponent,\r\n SaveSnackbarComponent,\r\n ExpandDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n ApiModule,\r\n MatFormFieldModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatChipsModule,\r\n MatAutocompleteModule,\r\n DragDropModule,\r\n RouterModule,\r\n MatSnackBarModule,\r\n MatDialogModule,\r\n MatMenuModule\r\n ],\r\n exports: [\r\n ApiModule,\r\n AuthorizationComponent,\r\n\r\n ProductSelectComponent,\r\n ConfigSelectComponent,\r\n EnvironmentSelectComponent,\r\n SettingSelectComponent,\r\n\r\n SettingItemComponent\r\n ]\r\n})\r\nexport class NgConfigCatPublicApiUIModule {\r\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<NgConfigCatPublicApiUIModule> {\r\n return {\r\n ngModule: NgConfigCatPublicApiUIModule,\r\n providers: [{ provide: Configuration, useFactory: configurationFactory }]\r\n };\r\n }\r\n\r\n constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of ng-configcat-publicapi-ui\r\n */\r\n\r\nexport * from './lib/ng-configcat-publicapi-ui.module';\r\nexport * from './lib/_services';\r\nexport * from './lib/setting-item/setting-item.component';\r\nexport * from './lib/authorization/authorization.component';\r\nexport * from './lib/selects/product-select/product-select.component';\r\nexport * from './lib/selects/config-select/config-select.component';\r\nexport * from './lib/selects/environment-select/environment-select.component';\r\nexport * from './lib/selects/setting-select/setting-select.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {PublicApiService as ɵd} from './lib/_services';\nexport {PublicApiService as ɵb} from './lib/_services/public-api.service';\nexport {SettingListFormHelper as ɵf} from './lib/_services/setting-list-form-helper';\nexport {BaseComponent as ɵa} from './lib/base/base.component';\nexport {Configuration as ɵc} from './lib/configuration';\nexport {ConcurrentDialogComponent as ɵl} from './lib/dialogs/concurrent-dialog/concurrent-dialog.component';\nexport {ExpandDialogComponent as ɵn} from './lib/dialogs/expand-dialog/expand-dialog.component';\nexport {ReasonDialogComponent as ɵk} from './lib/dialogs/reason-dialog/reason-dialog.component';\nexport {SaveSnackbarComponent as ɵm} from './lib/dialogs/save-snackbar/save-snackbar.component';\nexport {SettingListComponent as ɵe} from './lib/setting-list/setting-list.component';\nexport {RolloutPercentageItemsComponent as ɵh} from './lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component';\nexport {RolloutRulesComponent as ɵi} from './lib/setting-list/setting/rollout-rules/rollout-rules.component';\nexport {SettingComponent as ɵg} from './lib/setting-list/setting/setting.component';\nexport {ValueComponent as ɵj} from './lib/setting-list/setting/value/value.component';"],"names":["Injectable","MeService","PublicApiConfiguration","ProductsService","ConfigsService","EnvironmentsService","FeatureFlagsSettingsService","FeatureFlagSettingValuesService","IntegrationLinksService","HttpClient","Optional","Component","Input","EventEmitter","map","catchError","throwError","Output","NG_VALUE_ACCESSOR","forwardRef","Validators","FormBuilder","MatDialogRef","Inject","MAT_DIALOG_DATA","SettingType","RolloutRuleComparator","moveItemInArray","semver","MatDialog","MatSnackBar","ChangeDetectorRef","NgModule","CommonModule","FormsModule","ReactiveFormsModule","BrowserAnimationsModule","HttpClientModule","ApiModule","MatFormFieldModule","MatOptionModule","MatSelectModule","MatButtonModule","MatInputModule","MatIconModule","MatTooltipModule","MatChipsModule","MatAutocompleteModule","DragDropModule","RouterModule","MatSnackBarModule","MatDialogModule","MatMenuModule"],"mappings":"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"}
1
+ {"version":3,"file":"ng-configcat-publicapi-ui.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/ng-configcat-publicapi-ui/src/lib/configuration.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/_services/public-api.service.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/base/base.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/reason-dialog/reason-dialog.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/reason-dialog/reason-dialog.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/save-snackbar/save-snackbar.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/save-snackbar/save-snackbar.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/concurrent-dialog/concurrent-dialog.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/concurrent-dialog/concurrent-dialog.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/_services/setting-list-form-helper.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/expand-dialog/expand-dialog.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/dialogs/expand-dialog/expand-dialog.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/value/value.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/value/value.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/rollout-rules/rollout-rules.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/rollout-rules/rollout-rules.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/setting.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting/setting.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting-list.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-list/setting-list.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-item/setting-item.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/setting-item/setting-item.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/setting-select/setting-select.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/setting-select/setting-select.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/product-select/product-select.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/product-select/product-select.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/config-select/config-select.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/config-select/config-select.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/environment-select/environment-select.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/selects/environment-select/environment-select.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/_services/form-helper.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/authorization/authorization.component.ts","../../../projects/ng-configcat-publicapi-ui/src/lib/authorization/authorization.component.html","../../../projects/ng-configcat-publicapi-ui/src/lib/ng-configcat-publicapi-ui.module.ts","../../../projects/ng-configcat-publicapi-ui/src/public-api.ts","../../../projects/ng-configcat-publicapi-ui/src/ng-configcat-publicapi-ui.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class Configuration {\n basicAuthUsername?: string;\n basicAuthPassword?: string;\n basePath = 'https://api.configcat.com';\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport {\n Configuration as PublicApiConfiguration,\n ProductsService, EnvironmentsService, ConfigsService,\n FeatureFlagsSettingsService, FeatureFlagSettingValuesService, MeService,\n IntegrationLinksService\n} from 'ng-configcat-publicapi';\nimport { Configuration } from '../configuration';\n\n@Injectable({ providedIn: 'root' })\nexport class PublicApiService {\n\n constructor(\n private httpClient: HttpClient,\n @Optional() private configuration: Configuration) {\n }\n\n createMeService(basicAuthUsername: string | null = null, basicAuthPassword: string | null = null, basePath: string | null = null) {\n return new MeService(this.httpClient, basePath ?? this.configuration?.basePath,\n new PublicApiConfiguration({\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\n }));\n }\n\n createProductsService(basicAuthUsername: string | null = null, basicAuthPassword: string | null = null, basePath: string | null = null) {\n return new ProductsService(this.httpClient, basePath ?? this.configuration?.basePath,\n new PublicApiConfiguration({\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\n }));\n }\n\n createConfigsService(basicAuthUsername: string | null = null, basicAuthPassword: string | null = null, basePath: string | null = null) {\n return new ConfigsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\n }));\n }\n\n createEnvironmentsService(basicAuthUsername: string | null = null, basicAuthPassword: string | null = null, basePath: string | null = null) {\n return new EnvironmentsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\n }));\n }\n\n createSettingsService(basicAuthUsername: string | null = null, basicAuthPassword: string | null = null, basePath: string | null = null) {\n return new FeatureFlagsSettingsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\n }));\n }\n\n createSettingValuesService(basicAuthUsername: string | null = null, basicAuthPassword: string | null = null, basePath: string | null = null) {\n return new FeatureFlagSettingValuesService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\n }));\n }\n\n createIntegrationLinksService(basicAuthUsername: string | null = null, basicAuthPassword: string | null = null, basePath: string | null = null) {\n return new IntegrationLinksService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({\n username: basicAuthUsername ?? this.configuration?.basicAuthUsername,\n password: basicAuthPassword ?? this.configuration?.basicAuthPassword\n }));\n }\n}\n","import { Component, Input, Optional } from '@angular/core';\nimport { Configuration } from '../configuration';\nimport { PublicApiService } from '../_services/public-api.service';\n\n@Component({\n selector: 'base',\n template: '<div></div>'\n})\nexport class BaseComponent {\n\n @Input() basePath: string | null = null;\n @Input() basicAuthUsername: string | null = null;\n @Input() basicAuthPassword: string | null = null;\n\n constructor(private publicApiService: PublicApiService) {\n }\n\n protected createProductsService() {\n return this.publicApiService.createProductsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\n }\n\n protected createConfigsService() {\n return this.publicApiService.createConfigsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\n }\n\n protected createEnvironmentsService() {\n return this.publicApiService.createEnvironmentsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\n }\n\n protected createSettingsService() {\n return this.publicApiService.createSettingsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\n }\n\n protected createSettingValuesService() {\n return this.publicApiService.createSettingValuesService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'configcat-reason-dialog',\n templateUrl: './reason-dialog.component.html',\n styleUrls: ['./reason-dialog.component.scss']\n})\nexport class ReasonDialogComponent implements OnInit {\n\n formGroup!: FormGroup;\n\n constructor(\n public dialogRef: MatDialogRef<ReasonDialogComponent>,\n private formBuilder: FormBuilder\n ) { }\n\n ngOnInit() {\n this.formGroup = this.formBuilder.group({\n reason: ['', [Validators.required, Validators.maxLength(1000)]]\n });\n }\n\n handleSaveButton() {\n if (!this.formGroup.valid) {\n return;\n }\n\n this.dialogRef.close({ button: 'save', reason: this.formGroup.controls.reason.value });\n }\n\n cancel() {\n this.dialogRef.close({ button: 'cancel' });\n }\n}\n","<h3 mat-dialog-title>Add notes</h3>\n<p>This will appear in the Why column of the Audit Log.</p>\n<form [formGroup]=\"formGroup\" (ngSubmit)=\"handleSaveButton()\">\n <div mat-dialog-content class=\"container\">\n <mat-form-field appearance=\"outline\">\n <mat-label></mat-label>\n <textarea matInput formControlName=\"reason\" name=\"reason\" placeholder=\"I'm changing settings because...\"\n rows=\"3\"></textarea>\n <mat-error *ngIf=\"formGroup.controls.reason.invalid\">The field is required.</mat-error>\n </mat-form-field>\n </div>\n <br>\n <div mat-dialog-actions>\n <button type=\"submit\" style=\"margin-right: 10px;\" mat-raised-button color=\"primary\">Add notes & Save</button>\n <button type=\"button\" mat-raised-button (click)=\"cancel()\">Cancel</button>\n </div>\n</form>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'configcat-save-snackbar',\n templateUrl: './save-snackbar.component.html',\n styleUrls: ['./save-snackbar.component.scss']\n})\nexport class SaveSnackbarComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","<p class=\"header\">Settings saved successfully.</p>","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'configcat-concurrent-dialog',\n templateUrl: './concurrent-dialog.component.html',\n styleUrls: ['./concurrent-dialog.component.scss']\n})\nexport class ConcurrentDialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef<ConcurrentDialogComponent>\n ) { }\n\n ngOnInit() {\n }\n\n save() {\n this.dialogRef.close({ button: 'save' });\n }\n\n discard() {\n this.dialogRef.close({ button: 'discard' });\n }\n\n}\n","<h3 mat-dialog-title>Concurrent update detected</h3>\n<p>\n Somebody updated the feature flags & settings while you were editing them.\n</p>\n<ul>\n <li>\n To discard your local changes and reload the updated values, click <strong>Discard my changes & reload</strong>\n </li>\n <li>\n To save you local values and overwrite the remote changes, click <strong>Save anyway</strong>\n </li>\n</ul>\n<p>For more info about the changes check the <a [routerLink]=\"['/auditlog']\" target=\"_blank\" rel=\"noopener noreferrer\" >audit logs</a> in a new tab.</p>\n<div mat-dialog-actions>\n <button type=\"button\" style=\"margin-right: 10px;\" mat-raised-button color=\"primary\" (click)=\"discard()\">Discard\n local changes & reload</button>\n <button type=\"button\" mat-raised-button (click)=\"save()\">Save anyway</button>\n</div>","import { Injectable } from '@angular/core';\nimport { SettingValuesModel } from '../_models/settingValuesModel';\nimport { FormBuilder, Validators, FormGroup, FormArray } from '@angular/forms';\nimport { RolloutPercentageItemModel, RolloutRuleModel, SettingType, SettingValueModel } from 'ng-configcat-publicapi';\n\n@Injectable({ providedIn: 'root' })\nexport class SettingListFormHelper {\n\n constructor(private formBuilder: FormBuilder) { }\n\n createSettingValuesFormGroup(settingValuesModel: SettingValuesModel) {\n const formGroup = this.formBuilder.group({\n settingValues: this.formBuilder.array(\n settingValuesModel.settingValues.map(sv => {\n return this.createSettingValueFormGroup(sv, settingValuesModel.readOnly);\n })),\n\n // Decorator\n environment: this.formBuilder.group({\n environmentId: [{ value: settingValuesModel.environment.environmentId, disabled: true }],\n name: [{ value: settingValuesModel.environment.name, disabled: true }],\n }),\n\n comparisonAttributes: [[]],\n allRolloutRulesCount: [0]\n });\n\n const rolloutRules = this.getAllRolloutRules(formGroup);\n const comparisonAttributes = this.getComparisonAttributes(rolloutRules);\n formGroup.patchValue({ allRolloutRulesCount: rolloutRules.length });\n formGroup.patchValue({ comparisonAttributes: comparisonAttributes });\n return formGroup;\n }\n\n \n createSettingValueFormGroup(settingValueModel: SettingValueModel, readOnly: boolean) {\n if (!settingValueModel.setting) {\n return this.formBuilder.group({});\n }\n return this.formBuilder.group({\n settingId: [settingValueModel.setting.settingId],\n value: [\n { value: settingValueModel.value, disabled: readOnly },\n this.getValidatorsForSettingType(settingValueModel.setting.settingType)\n ],\n rolloutPercentageItems: settingValueModel.rolloutPercentageItems\n ? this.formBuilder.array(settingValueModel.rolloutPercentageItems.map(p => {\n // @ts-ignore()\n return this.createRolloutPercentageItemFormGroup(p, readOnly, settingValueModel.setting.settingType);\n }))\n : this.formBuilder.array([]), rolloutRules: settingValueModel.rolloutRules\n ? this.formBuilder.array(settingValueModel.rolloutRules.map(r => {\n // @ts-ignore()\n return this.createRolloutRuleFormGroup(r, readOnly, settingValueModel.setting.settingType);\n }))\n : this.formBuilder.array([]),\n\n updatedAt: [{ value: settingValueModel.updatedAt, disabled: true }],\n lastUpdaterUserEmail: [{ value: settingValueModel.lastUpdaterUserEmail, disabled: true }],\n lastUpdaterUserFullName: [{ value: settingValueModel.lastUpdaterUserFullName, disabled: true }],\n\n rolloutPercentageItemsSum: [{ value: 100, disabled: false }, [Validators.min(100), Validators.max(100)]],\n // Decoration\n setting: this.formBuilder.group({\n settingId: [{ value: settingValueModel.setting.settingId, disabled: true }],\n key: [{ value: settingValueModel.setting.key, disabled: true }],\n name: [{ value: settingValueModel.setting.name, disabled: true }],\n hint: [{ value: settingValueModel.setting.hint, disabled: true }],\n settingType: [{ value: settingValueModel.setting.settingType, disabled: true }],\n creatorEmail: [{ value: settingValueModel.setting.creatorEmail, disabled: true }],\n creatorFullName: [{ value: settingValueModel.setting.creatorFullName, disabled: true }],\n createdAt: [{ value: settingValueModel.setting.createdAt, disabled: true }]\n }),\n\n integrationLinks: settingValueModel.integrationLinks ? this.formBuilder.array(settingValueModel.integrationLinks.map(il => {\n return this.formBuilder.group({\n key: [{ value: il.key, disabled: true }],\n description: [{ value: il.description, disabled: true }],\n integrationLinkType: [{ value: il.integrationLinkType, disabled: true }],\n url: [{ value: il.url, disabled: true }],\n });\n })) : this.formBuilder.array([])\n });\n }\n\n createRolloutPercentageItemFormGroup(p: RolloutPercentageItemModel, readOnly: boolean, settingType: SettingType | undefined) {\n return this.formBuilder.group({\n percentage: [{ value: p.percentage, disabled: readOnly }, [Validators.required, Validators.min(0), Validators.max(100)]],\n value: [\n { value: p.value, disabled: readOnly },\n this.getValidatorsForSettingType(settingType)\n ],\n valueDisabled: [\n { value: p.value, disabled: true }, // For percentage item value\n ]\n });\n }\n\n createRolloutRuleFormGroup(r: RolloutRuleModel, readOnly: boolean, settingType: SettingType | undefined) {\n return this.formBuilder.group({\n comparisonAttribute: [{ value: r.comparisonAttribute, disabled: readOnly }, [Validators.required]],\n comparator: [{ value: r.comparator, disabled: readOnly }, [Validators.required]],\n comparisonValue: [{ value: r.comparisonValue, disabled: readOnly }, [Validators.required]],\n value: [\n { value: r.value, disabled: readOnly },\n this.getValidatorsForSettingType(settingType)\n ],\n });\n }\n\n private getValidatorsForSettingType(settingType: SettingType | undefined) {\n switch (settingType) {\n case SettingType.Int:\n return [Validators.required,\n Validators.min(-2147483648), Validators.max(2147483647), Validators.pattern('^[-+]?[0-9]\\\\d*$')];\n case SettingType.Double:\n return [Validators.required, Validators.min(-1.79769313486232E+308), Validators.max(1.79769313486232E+308)];\n case SettingType.String:\n case SettingType.Boolean:\n return [Validators.required];\n default:\n return [];\n }\n }\n\n private getAllRolloutRules(formGroup: FormGroup) {\n const settingValues = formGroup.get('settingValues') as FormArray;\n const rolloutRules = settingValues.controls.map(cv => (cv.get('rolloutRules') as FormArray).value);\n return rolloutRules.length === 0 ? rolloutRules : rolloutRules.reduce((a, b) => a.concat(b));\n }\n\n private getComparisonAttributes(rolloutRules: any[]) {\n if (rolloutRules.length > 0) {\n const currentComparisonAttributes = rolloutRules.map(r => r.comparisonAttribute);\n\n const defaultComparisonAttributes = ['Identifier', 'Email', 'Country'];\n const comparisonAttributes = currentComparisonAttributes.filter(c => defaultComparisonAttributes.indexOf(c) === -1);\n return Array.from(new Set(comparisonAttributes));\n } else {\n return [];\n }\n }\n}\n","import { Component, OnInit, Inject, OnDestroy } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Subscription } from 'rxjs';\nimport { FormBuilder, FormGroup, FormArray, FormControl } from '@angular/forms';\n\n@Component({\n selector: 'configcat-expand-dialog',\n templateUrl: './expand-dialog.component.html',\n styleUrls: ['./expand-dialog.component.scss']\n})\nexport class ExpandDialogComponent implements OnInit, OnDestroy {\n\n formControlSubscription!: Subscription | null;\n formGroupSubscription!: Subscription | null;\n\n formGroup!: FormGroup;\n\n constructor(public dialogRef: MatDialogRef<ExpandDialogComponent>,\n private formBuilder: FormBuilder,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n }\n\n ngOnInit(): void {\n if (this.data.multiline) {\n this.buildFormGroup();\n } else {\n this.formControlSubscription = this.data.control.valueChanges.subscribe((value: any) => {\n this.data.control.setValue(value, { onlySelf: true, emitEvent: false, emitModelToViewChange: true });\n this.data.control.markAsDirty();\n }, () => { }, () => { });\n }\n }\n\n values() {\n return this.formGroup.get('values') as FormArray;\n }\n\n getValueControls() {\n return this.values().controls.map(c => c as FormControl);\n }\n\n buildFormGroup() {\n const value = this.data.control.value ? this.data.control.value : '';\n const list = value.split(',').map((v: any) => v.trim()).filter((v: any) => !!v);\n this.formGroup = this.formBuilder.group({\n values: this.formBuilder.array(list.map((v: any) => this.formBuilder.control(v)))\n });\n this.formGroupSubscription = this.formGroup.valueChanges.subscribe((formGroupValue) => {\n this.data.control.setValue(formGroupValue.values\n .filter((v: any) => !!v)\n .join(','), { onlySelf: true, emitEvent: false, emitModelToViewChange: true });\n this.data.control.updateValueAndValidity();\n this.data.control.markAsDirty();\n });\n }\n\n add() {\n (this.formGroup.controls.values as FormArray).push(this.formBuilder.control(''));\n }\n\n remove(index: any) {\n (this.formGroup.controls.values as FormArray).removeAt(index);\n }\n\n ngOnDestroy() {\n if (this.formControlSubscription) {\n this.formControlSubscription.unsubscribe();\n this.formControlSubscription = null;\n }\n\n if (this.formGroupSubscription) {\n this.formGroupSubscription.unsubscribe();\n this.formGroupSubscription = null;\n }\n }\n\n close() {\n this.dialogRef.close();\n }\n}\n","<div mat-dialog-content class=\"container\">\n\n <mat-form-field appearance=\"outline\" *ngIf=\"!data.multiline\">\n <mat-label></mat-label>\n <textarea matInput [formControl]=\"data.control\" rows=\"15\"></textarea>\n </mat-form-field>\n <div [formGroup]=\"formGroup\" *ngIf=\"data.multiline\">\n <div *ngFor=\"let valueControl of getValueControls(); let i = index;\"\n class=\"value-field\">\n <mat-form-field appearance=\"outline\">\n <input matInput [formControl]=\"valueControl\" rows=\"15\" />\n </mat-form-field>\n <button (click)=\"remove(i)\" mat-icon-button type=\"button\">\n <mat-icon>delete_outline</mat-icon>\n </button>\n </div>\n <button (click)=\"add()\" mat-icon-button type=\"button\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n</div>\n<div mat-dialog-actions>\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"close()\">Done</button>\n</div>","import { Component, Input, forwardRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ExpandDialogComponent } from '../../../dialogs/expand-dialog/expand-dialog.component';\nimport { SettingModel, SettingType } from 'ng-configcat-publicapi';\n\n@Component({\n selector: 'configcat-value',\n templateUrl: './value.component.html',\n styleUrls: [\n './slider.scss',\n './value.component.scss'\n ]\n})\nexport class ValueComponent {\n\n @Input() valueFormControl!: FormControl;\n\n @Input() setting!: SettingModel;\n\n SettingType = SettingType;\n\n constructor(private dialog: MatDialog) {\n }\n\n popOut() {\n this.dialog.open(ExpandDialogComponent, {\n width: '640px',\n data: { control: this.valueFormControl }\n });\n }\n}\n","<div class=\"flex\">\n <div class=\"container\" [ngSwitch]=\"setting.settingType\">\n <div *ngSwitchCase=\"SettingType.String\" class=\"with-validation\">\n <span *ngIf=\"valueFormControl.invalid\" class=\"error\">*</span>\n <input [ngClass]=\"{'invalid': valueFormControl.invalid}\" type=\"text\"\n [formControl]=\"valueFormControl\" placeholder=\"my value\" name=\"value\">\n <div class=\"expand\" (click)=\"popOut()\" matTooltip=\"Pop-out Editor\">\n <mat-icon>height</mat-icon>\n </div>\n </div>\n <div *ngSwitchCase=\"SettingType.Int\" class=\"with-validation\">\n <span *ngIf=\"valueFormControl.invalid\" class=\"error\">*</span>\n <input [ngClass]=\"{'invalid': valueFormControl.invalid}\" type=\"number\" [formControl]=\"valueFormControl\"\n placeholder=\"42\" name=\"value\" />\n </div>\n <div *ngSwitchCase=\"SettingType.Double\" class=\"with-validation\">\n <span *ngIf=\"valueFormControl.invalid\" class=\"error\">*</span>\n <input [ngClass]=\"{'invalid': valueFormControl.invalid}\" type=\"number\" [formControl]=\"valueFormControl\"\n placeholder=\"3.14\" name=\"value\">\n </div>\n <div *ngSwitchCase=\"SettingType.Boolean\" class=\"toggle\">\n <label class=\"switch\">\n <input type=\"checkbox\" [formControl]=\"valueFormControl\" name=\"value\" />\n <span class=\"slider round\"></span>\n </label>\n </div>\n </div>\n <div *ngIf=\"setting.settingType === SettingType.Boolean\" class=\"spacer\"></div>\n\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup, FormControl, FormArray, Validators } from '@angular/forms';\nimport { moveItemInArray, CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { valid } from 'semver';\nimport { ExpandDialogComponent } from '../../../dialogs/expand-dialog/expand-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { SettingType, RolloutRuleComparator } from 'ng-configcat-publicapi';\n\n@Component({\n selector: 'configcat-rollout-rules',\n templateUrl: './rollout-rules.component.html',\n styleUrls: ['./rollout-rules.component.scss']\n})\nexport class RolloutRulesComponent {\n\n @Input() formGroup!: FormGroup;\n @Input() readOnly = false;\n\n SettingType = SettingType;\n\n defaultComparisonAttributes = ['Identifier', 'Email', 'Country'];\n\n rolloutRuleComparators = [\n { value: RolloutRuleComparator.IsOneOf, label: 'IS ONE OF' },\n { value: RolloutRuleComparator.IsNotOneOf, label: 'IS NOT ONE OF' },\n { value: RolloutRuleComparator.Contains, label: 'CONTAINS' },\n { value: RolloutRuleComparator.DoesNotContain, label: 'DOES NOT CONTAIN' },\n\n { value: RolloutRuleComparator.SemVerIsOneOf, label: 'IS ONE OF (SemVer)' },\n { value: RolloutRuleComparator.SemVerIsNotOneOf, label: 'IS NOT ONE OF (SemVer)' },\n { value: RolloutRuleComparator.SemVerLess, label: '< (SemVer)' },\n { value: RolloutRuleComparator.SemVerLessOrEquals, label: '<= (SemVer)' },\n { value: RolloutRuleComparator.SemVerGreater, label: '> (SemVer)' },\n { value: RolloutRuleComparator.SemVerGreaterOrEquals, label: '>= (SemVer)' },\n\n { value: RolloutRuleComparator.NumberEquals, label: '= (Number)' },\n { value: RolloutRuleComparator.NumberDoesNotEqual, label: '!= (Number)' },\n { value: RolloutRuleComparator.NumberLess, label: '< (Number)' },\n { value: RolloutRuleComparator.NumberLessOrEquals, label: '<= (Number)' },\n { value: RolloutRuleComparator.NumberGreater, label: '> (Number)' },\n { value: RolloutRuleComparator.NumberGreaterOrEquals, label: '>= (Number)' },\n\n { value: RolloutRuleComparator.SensitiveIsOneOf, label: 'IS ONE OF (Sensitive)' },\n { value: RolloutRuleComparator.SensitiveIsNotOneOf, label: 'IS NOT ONE OF (Sensitive)' },\n ];\n\n constructor(private dialog: MatDialog) { }\n\n onlyFirstTooltip() {\n return this.formGroup.root.get('allRolloutRulesCount')?.value > 20 || this.rolloutRules().controls.length > 10;\n }\n\n setting() {\n return this.formGroup.get('setting')?.value;\n }\n\n rolloutRules() {\n return this.formGroup.get('rolloutRules') as FormArray;\n }\n\n comparisonAttributes() {\n return this.formGroup.root.get('comparisonAttributes')?.value;\n }\n\n removeRule(index: any) {\n this.rolloutRules().removeAt(index);\n this.rolloutRules().markAsDirty();\n }\n\n onDrop(event: any) {\n const rolloutRules = this.rolloutRules().controls;\n moveItemInArray(rolloutRules, event.previousIndex, event.currentIndex);\n this.formGroup.markAsDirty();\n }\n\n attributeChanged(event: any, comparisonAttribute: FormControl) {\n if (this.defaultComparisonAttributes.indexOf(event.value) !== -1) {\n if (comparisonAttribute.value !== event.value) {\n comparisonAttribute.setValue(event.value);\n this.formGroup.markAsDirty();\n }\n } else {\n if (comparisonAttribute.value !== '') {\n comparisonAttribute.setValue('');\n this.formGroup.markAsDirty();\n }\n }\n }\n\n getPlaceHolder(rolloutRule: any) {\n if (!rolloutRule.controls.comparisonAttribute.value) {\n return '';\n }\n\n switch (rolloutRule.controls.comparator.value) {\n case RolloutRuleComparator.IsOneOf:\n case RolloutRuleComparator.IsNotOneOf:\n case RolloutRuleComparator.SensitiveIsOneOf:\n case RolloutRuleComparator.SensitiveIsNotOneOf:\n switch (rolloutRule.controls.comparisonAttribute.value.toLowerCase()) {\n case 'identifier':\n return 'e.g: user_id1, user_id2, user_id3';\n case 'email':\n return 'e.g: jane@example.com, john@example.com';\n case 'country':\n return 'e.g: France, Brazil';\n default:\n return 'e.g: value1, value2, value3';\n }\n case RolloutRuleComparator.Contains:\n case RolloutRuleComparator.DoesNotContain:\n switch (rolloutRule.controls.comparisonAttribute.value.toLowerCase()) {\n case 'identifier':\n return 'part-of-id';\n case 'email':\n return 'e.g: @example.com';\n case 'country':\n return 'e.g: United';\n default:\n return 'e.g: any-part-of-your-value-string';\n }\n case RolloutRuleComparator.SemVerIsOneOf:\n case RolloutRuleComparator.SemVerIsNotOneOf:\n return 'e.g: 1.0.0, 2.0.1';\n case RolloutRuleComparator.SemVerLessOrEquals:\n case RolloutRuleComparator.SemVerLess:\n case RolloutRuleComparator.SemVerGreater:\n case RolloutRuleComparator.SemVerGreaterOrEquals:\n return 'e.g: 1.0.0';\n case RolloutRuleComparator.NumberEquals:\n case RolloutRuleComparator.NumberDoesNotEqual:\n case RolloutRuleComparator.NumberLess:\n case RolloutRuleComparator.NumberLessOrEquals:\n case RolloutRuleComparator.NumberGreater:\n case RolloutRuleComparator.NumberGreaterOrEquals:\n return 'e.g: 42';\n }\n\n return '';\n }\n\n getComparisonValueType(rolloutRule: any) {\n switch (rolloutRule.controls.comparator.value) {\n case RolloutRuleComparator.NumberEquals:\n case RolloutRuleComparator.NumberDoesNotEqual:\n case RolloutRuleComparator.NumberLess:\n case RolloutRuleComparator.NumberLessOrEquals:\n case RolloutRuleComparator.NumberGreater:\n case RolloutRuleComparator.NumberGreaterOrEquals:\n return 'number';\n default:\n return 'text';\n }\n }\n\n getInfoClass(rolloutRule: any) {\n if (!rolloutRule.controls.comparisonAttribute.value) {\n return 'info';\n }\n\n switch (rolloutRule.controls.comparator.value) {\n case RolloutRuleComparator.IsOneOf:\n case RolloutRuleComparator.IsNotOneOf:\n case RolloutRuleComparator.Contains:\n case RolloutRuleComparator.DoesNotContain:\n return 'warn';\n default:\n return 'info';\n }\n }\n\n getInfoTooltip(rolloutRule: any) {\n if (!rolloutRule.controls.comparisonAttribute.value) {\n return 'Learn more about comparators';\n }\n\n switch (rolloutRule.controls.comparator.value) {\n case RolloutRuleComparator.IsOneOf:\n case RolloutRuleComparator.IsNotOneOf:\n case RolloutRuleComparator.Contains:\n case RolloutRuleComparator.DoesNotContain:\n return 'Consider using sensitive text comparators. Click to learn more.';\n default:\n return 'Click to learn more about comparators';\n }\n }\n\n comparatorChanged(rolloutRule: any) {\n let validators: any[] = [];\n\n switch (rolloutRule.controls.comparator.value) {\n case RolloutRuleComparator.IsOneOf:\n case RolloutRuleComparator.IsNotOneOf:\n case RolloutRuleComparator.SensitiveIsOneOf:\n case RolloutRuleComparator.SensitiveIsNotOneOf:\n case RolloutRuleComparator.Contains:\n case RolloutRuleComparator.DoesNotContain:\n validators = [Validators.required, Validators.maxLength(65535)];\n break;\n case RolloutRuleComparator.SemVerIsOneOf:\n case RolloutRuleComparator.SemVerIsNotOneOf:\n validators = [Validators.required, this.validateSemVerList];\n break;\n case RolloutRuleComparator.SemVerLessOrEquals:\n case RolloutRuleComparator.SemVerLess:\n case RolloutRuleComparator.SemVerGreater:\n case RolloutRuleComparator.SemVerGreaterOrEquals:\n validators = [Validators.required, this.validateSemVer];\n break;\n case RolloutRuleComparator.NumberEquals:\n case RolloutRuleComparator.NumberDoesNotEqual:\n case RolloutRuleComparator.NumberLess:\n case RolloutRuleComparator.NumberLessOrEquals:\n case RolloutRuleComparator.NumberGreater:\n case RolloutRuleComparator.NumberGreaterOrEquals:\n validators = [Validators.required, Validators.min(-1.79769313486232E+308), Validators.max(1.79769313486232E+308)];\n break;\n }\n\n rolloutRule.controls.comparisonValue.setValidators(validators);\n rolloutRule.controls.comparisonValue.updateValueAndValidity();\n }\n\n isListType(rolloutRule: any) {\n switch (rolloutRule.controls.comparator.value) {\n case RolloutRuleComparator.IsOneOf:\n case RolloutRuleComparator.IsNotOneOf:\n case RolloutRuleComparator.SensitiveIsOneOf:\n case RolloutRuleComparator.SensitiveIsNotOneOf:\n case RolloutRuleComparator.SemVerIsOneOf:\n case RolloutRuleComparator.SemVerIsNotOneOf:\n return true;\n default:\n return false;\n }\n }\n\n validateSemVer(c: FormControl) {\n\n if (valid(c.value) === null) {\n return {\n validateSemVer: {\n valid: false\n }\n };\n }\n\n return null;\n }\n\n validateSemVerList(c: FormControl) {\n if (!c.value) {\n return {\n validateSemVerList: {\n valid: false\n }\n };\n }\n\n const semvers = c.value.split(',').map((s: any) => s.trim());\n if (semvers.find((s: any) => s && s !== '' && valid(s) === null)) {\n return {\n validateSemVerList: {\n valid: false\n }\n };\n }\n\n return null;\n }\n\n popOut(rolloutRule: any) {\n this.dialog.open(ExpandDialogComponent, {\n width: '640px',\n data: {\n control: rolloutRule.controls.comparisonValue,\n multiline: this.isListType(rolloutRule)\n }\n });\n }\n\n\n trackByIndex(index: number): any {\n return index;\n }\n\n getRolloutRuleValueFormControl(rolloutRule: any) {\n return rolloutRule.controls.value as FormControl;\n }\n\n getRolloutRuleComparisonValueFormControl(rolloutRule: any) {\n return rolloutRule.controls.comparisonValue as FormControl;\n }\n\n getRolloutRuleComparisonAttributeFormControl(rolloutRule: any) {\n return rolloutRule.controls.comparisonAttribute as FormControl;\n }\n\n getRolloutRuleComparatorFormControl(rolloutRule: any) {\n return rolloutRule.controls.comparator as FormControl;\n }\n}\n","<div [formGroup]=\"formGroup\">\n <div cdkDropList (cdkDropListDropped)=\"onDrop($event)\" [cdkDropListDisabled]=\"readOnly\"\n [cdkDropListData]=\"rolloutRules().controls\">\n <div *ngFor=\"let rolloutRule of rolloutRules().controls; trackBy: trackByIndex; let i = index\" cdkDrag>\n <div class=\"targeting-row\">\n <div class=\"fields flex\">\n <div class=\"drag-handle\" cdkDragHandle data-tooltip=\"Drag here to reorder\" *ngIf=\"!readOnly\">\n <mat-icon>drag_indicator</mat-icon>\n </div>\n <div class=\"if\">\n <mat-chip-list [class.spacing]=\"i === 0\">\n <mat-chip class=\"chip\">{{ i === 0 ? 'IF' : 'ELSE IF' }}</mat-chip>\n </mat-chip-list>\n <a href=\"https://configcat.com/docs/advanced/user-object\" target=\"_blank\"\n rel=\"noopener noreferrer\">user's</a>\n </div>\n\n <select class=\"custom-select attribute-select\" matTooltip=\"Comparison attribute\"\n matTooltipPosition=\"above\" [matTooltipDisabled]=\"onlyFirstTooltip() && i !== 0\"\n (change)=\"attributeChanged($event.target, getRolloutRuleComparisonAttributeFormControl(rolloutRule))\">\n <option *ngFor=\"let comparisonAttribute of defaultComparisonAttributes\"\n [selected]=\"comparisonAttribute === getRolloutRuleComparisonAttributeFormControl(rolloutRule).value\">\n {{comparisonAttribute}}</option>\n <option\n [selected]=\"defaultComparisonAttributes.indexOf(getRolloutRuleComparisonAttributeFormControl(rolloutRule).value) === -1\">\n Custom\n </option>\n </select>\n\n\n <span class=\"attribute-span\" data-tooltip=\"Custom user attribute\"\n [hidden]=\"defaultComparisonAttributes.indexOf(getRolloutRuleComparisonAttributeFormControl(rolloutRule).value) !== -1\">\n <span class=\"attribute-error\"\n *ngIf=\"getRolloutRuleComparisonAttributeFormControl(rolloutRule).invalid\">*</span>\n <input\n [ngClass]=\"{'invalid': getRolloutRuleComparisonAttributeFormControl(rolloutRule).invalid}\"\n type=\"text\" matInput [matAutocomplete]=\"auto\"\n [formControl]=\"getRolloutRuleComparisonAttributeFormControl(rolloutRule)\" class=\"attribute\"\n placeholder=\"e.g. Eye color\">\n </span>\n\n <mat-autocomplete #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let option of comparisonAttributes()\" [value]=\"option\">\n {{option}}\n </mat-option>\n </mat-autocomplete>\n\n <div class=\"select-wrapper\">\n <select class=\"custom-select\" [formControl]=\"getRolloutRuleComparatorFormControl(rolloutRule)\"\n matTooltip=\"Comparator\" matTooltipPosition=\"above\"\n [matTooltipDisabled]=\"onlyFirstTooltip() && i !== 0\"\n (change)=\"comparatorChanged(rolloutRule)\">\n <optgroup label=\"SENSITIVE TEXT\">\n <option *ngFor=\"let comparator of rolloutRuleComparators.slice(16, 18)\"\n [ngValue]=\"comparator.value\">\n {{comparator.label}}\n </option>\n </optgroup>\n <optgroup label=\"TEXT\">\n <option *ngFor=\"let comparator of rolloutRuleComparators.slice(0, 4)\"\n [ngValue]=\"comparator.value\">\n {{comparator.label}}\n </option>\n </optgroup>\n <optgroup label=\"SEMANTIC VERSION\">\n <option *ngFor=\"let comparator of rolloutRuleComparators.slice(4, 10)\"\n [ngValue]=\"comparator.value\">\n {{comparator.label}}\n </option>\n </optgroup>\n <optgroup label=\"NUMBER\">\n <option *ngFor=\"let comparator of rolloutRuleComparators.slice(10, 16)\"\n [ngValue]=\"comparator.value\">\n {{comparator.label}}\n </option>\n </optgroup>\n </select>\n <div [class]=\"getInfoClass(rolloutRule)\" [matTooltip]=\"getInfoTooltip(rolloutRule)\"\n [matTooltipDisabled]=\"onlyFirstTooltip() && i !== 0\">\n <a href=\"https://configcat.com/docs/advanced/targeting/#comparator\" target=\"_blank\"\n rel=\"noopener noreferrer\">\n <mat-icon>info</mat-icon>\n </a>\n </div>\n </div>\n\n <div class=\"comparison-value\" data-tooltip=\"Comparison value\">\n <span class=\"error\"\n *ngIf=\"getRolloutRuleComparisonValueFormControl(rolloutRule).invalid\">*</span>\n\n <input [ngClass]=\"{'invalid': getRolloutRuleComparisonValueFormControl(rolloutRule).invalid}\"\n [formControl]=\"getRolloutRuleComparisonValueFormControl(rolloutRule)\"\n [type]=\"getComparisonValueType(rolloutRule)\" [placeholder]=\"getPlaceHolder(rolloutRule)\">\n <div class=\"expand\" matTooltip=\"Pop-out Editor\" (click)=\"popOut(rolloutRule)\"\n *ngIf=\"getComparisonValueType(rolloutRule)==='text'\">\n <mat-icon>height</mat-icon>\n </div>\n </div>\n\n <div class=\"delete\" matTooltip=\"Remove targeting rule\"\n [matTooltipDisabled]=\"onlyFirstTooltip() && i !== 0\" *ngIf=\"!readOnly\" (click)=\"removeRule(i)\">\n <mat-icon>cancel</mat-icon>\n </div>\n </div>\n <div class=\"value flex\">\n <div class=\"serve\" *ngIf=\"setting().settingType !== SettingType.Boolean\">\n <mat-chip-list>\n <mat-chip class=\"chip\">Serve:</mat-chip>\n </mat-chip-list>\n </div>\n\n <configcat-value class=\"served-value\"\n [valueFormControl]=\"getRolloutRuleValueFormControl(rolloutRule)\" [setting]=\"setting()\">\n </configcat-value>\n </div>\n </div>\n </div>\n </div>\n</div>","import { Component, Input } from '@angular/core';\nimport { FormGroup, FormArray, FormControl } from '@angular/forms';\nimport { SettingType } from 'ng-configcat-publicapi';\n\n@Component({\n selector: 'configcat-rollout-percentage-items',\n templateUrl: './rollout-percentage-items.component.html',\n styleUrls: ['./rollout-percentage-items.component.scss']\n})\nexport class RolloutPercentageItemsComponent {\n\n @Input() formGroup!: FormGroup;\n @Input() readOnly = false;\n SettingType = SettingType;\n\n\n setting() {\n return this.formGroup.get('setting')?.value;\n }\n\n rolloutRules() {\n return this.formGroup.get('rolloutRules') as FormArray;\n }\n\n rolloutPercentageItems() {\n return this.formGroup.get('rolloutPercentageItems') as FormArray;\n }\n\n rolloutPercentageItemsSum() {\n return this.formGroup.get('rolloutPercentageItemsSum') as FormControl;\n }\n\n value(rolloutPercentageItem: FormGroup): FormControl {\n return this.setting().settingType === SettingType.Boolean ?\n rolloutPercentageItem.get('valueDisabled') as FormControl :\n rolloutPercentageItem.get('value') as FormControl;\n }\n\n constructor() { }\n\n percentageChanged(index: number) {\n if (this.rolloutPercentageItems().controls[index].value.percentage < 0) {\n (this.rolloutPercentageItems().controls[index] as FormGroup).controls.percentage.setValue(0);\n }\n if (this.rolloutPercentageItems().controls[index].value.percentage > 100) {\n (this.rolloutPercentageItems().controls[index] as FormGroup).controls.percentage.setValue(100);\n }\n\n if (this.rolloutPercentageItems().controls.length === 2) {\n (this.rolloutPercentageItems().controls[1 - index] as FormGroup).controls.percentage\n .setValue(100 - this.rolloutPercentageItems().controls[index].value.percentage);\n }\n\n this.updateSum();\n }\n\n updateSum() {\n if (this.rolloutPercentageItems().controls.length === 0) {\n this.rolloutPercentageItemsSum().setValue(100);\n } else {\n this.rolloutPercentageItemsSum().setValue(\n this.rolloutPercentageItems().controls.map(v => v.value.percentage)\n .reduce((a, b) => a + b)\n );\n }\n }\n\n removeRolloutPercentageItem(index: number) {\n this.rolloutPercentageItems().removeAt(index);\n this.rolloutPercentageItems().markAsDirty();\n this.updateSum();\n }\n\n removeAll() {\n this.rolloutPercentageItems().clear();\n this.rolloutPercentageItems().markAsDirty();\n this.updateSum();\n }\n\n getRolloutPercentageItemFormGroups() {\n return this.rolloutPercentageItems()?.controls?.map(c => c as FormGroup);\n }\n\n getPercentageFormControl(rolloutPercentageItem: any) {\n return rolloutPercentageItem.controls.percentage as FormControl;\n }\n}\n","<div class=\"percentage-wrapper\" [formGroup]=\"formGroup\">\n\n <div class=\"if\" *ngIf=\"rolloutRules().controls.length > 0\">\n <mat-chip-list>\n <mat-chip class=\"chip\">ELSE IF</mat-chip>\n </mat-chip-list>\n </div>\n <div class=\"grow\">\n <div class=\"percentage-row flex\"\n *ngFor=\"let rolloutPercentageItem of getRolloutPercentageItemFormGroups(); let i = index\">\n <div class=\"flex\">\n <input type=\"number\" [formControl]=\"getPercentageFormControl(rolloutPercentageItem)\"\n (input)=\"percentageChanged(i)\">%\n <span class=\"users\">of <a href=\"https://configcat.com/docs/advanced/user-object\" target=\"_blank\"\n rel=\"noopener noreferrer\">users</a>\n </span>\n </div>\n\n <div class=\"delete-option\" matTooltip=\"Remove this % option\"\n *ngIf=\"!readOnly && rolloutPercentageItems().controls.length > 2\"\n (click)=\"removeRolloutPercentageItem(i)\">\n <mat-icon>cancel</mat-icon>\n </div>\n\n <span data-tooltip=\"The sum of percentages must be equal to 100.\"\n *ngIf=\"(i === rolloutPercentageItems().controls.length -1) && (rolloutPercentageItemsSum().invalid)\">\n <mat-icon color=\"warn\">\n error_outline\n </mat-icon>\n </span>\n\n <div class=\"value flex\">\n <span class=\"value-name\" *ngIf=\"setting().settingType !== SettingType.Boolean\">Served value:</span>\n <configcat-value class=\"served-value\" [valueFormControl]=\"value(rolloutPercentageItem)\"\n [setting]=\"setting()\">\n </configcat-value>\n </div>\n <div class=\"delete\" matTooltip=\"Remove % options\" (click)=\"removeAll()\" *ngIf=\"!readOnly\">\n <mat-icon>cancel</mat-icon>\n </div>\n </div>\n </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormArray, FormControl } from '@angular/forms';\nimport { RolloutPercentageItemModel, RolloutRuleComparator, RolloutRuleModel, SettingType } from 'ng-configcat-publicapi';\nimport { SettingListFormHelper } from '../../_services/setting-list-form-helper';\n\n@Component({\n selector: 'setting',\n templateUrl: './setting.component.html',\n styleUrls: ['./setting.component.scss']\n})\nexport class SettingComponent implements OnInit {\n\n @Input() formGroup!: FormGroup;\n @Input() readOnly = false;\n @Input() canEditSetting = false;\n @Input() canDeleteSetting = false;\n @Input() deleteSettingText = 'Delete setting';\n @Input() showEnvironmentName = false;\n\n @Output() editSettingRequested = new EventEmitter();\n @Output() deleteSettingRequested = new EventEmitter();\n\n rulesBeingRendered = false;\n \n SettingType = SettingType;\n\n constructor(private formHelper: SettingListFormHelper,\n private cdRef: ChangeDetectorRef) { }\n\n ngOnInit() {}\n\n environment() {\n return this.formGroup.root.get('environment')?.value;\n }\n\n setting() {\n return this.formGroup.get('setting')?.value;\n }\n\n integrationLinks() {\n return this.formGroup.get('integrationLinks') as FormArray;\n }\n\n rolloutRules() {\n return this.formGroup.get('rolloutRules') as FormArray;\n }\n\n rolloutPercentageItems() {\n return this.formGroup.get('rolloutPercentageItems') as FormArray;\n }\n\n value() {\n return this.formGroup.get('value') as FormControl;\n }\n\n addRolloutRule() {\n this.rolloutRules().push(this.formHelper.createRolloutRuleFormGroup(\n <RolloutRuleModel>{\n comparisonAttribute: 'Identifier',\n comparator: RolloutRuleComparator.SensitiveIsOneOf,\n comparisonValue: '',\n value: this.setting().settingType === SettingType.Boolean ? false as unknown : null\n },\n this.readOnly, this.setting().settingType));\n this.rolloutRules().markAsDirty();\n }\n\n removeRolloutRules() {\n this.rolloutRules().clear();\n this.rolloutRules().markAsDirty();\n }\n\n addRolloutPercentageItem() {\n\n if (this.rolloutPercentageItems().length === 0) {\n switch (this.setting().settingType) {\n case SettingType.Boolean:\n this.rolloutPercentageItems().push(this.formHelper.createRolloutPercentageItemFormGroup(\n <RolloutPercentageItemModel>{\n percentage: 0,\n value: true as unknown \n },\n this.readOnly, this.setting().settingType));\n this.rolloutPercentageItems().push(this.formHelper.createRolloutPercentageItemFormGroup(\n <RolloutPercentageItemModel>{\n percentage: 100,\n value: false as unknown \n },\n this.readOnly, this.setting().settingType));\n break;\n\n case SettingType.String:\n case SettingType.Int:\n case SettingType.Double:\n for (let i = 0; i < 4; i++) {\n this.rolloutPercentageItems().push(this.formHelper.createRolloutPercentageItemFormGroup(\n <RolloutPercentageItemModel>{\n percentage: 25,\n value: null\n },\n this.readOnly, this.setting().settingType));\n }\n\n break;\n }\n } else if (this.setting().settingType !== SettingType.Boolean) {\n this.rolloutPercentageItems().push(this.formHelper.createRolloutPercentageItemFormGroup(\n <RolloutPercentageItemModel>{\n percentage: 0,\n value: null\n },\n this.readOnly, this.setting().settingType));\n }\n\n this.rolloutPercentageItems().markAsDirty();\n }\n\n removeRolloutPercentageItems() {\n this.rolloutPercentageItems().clear();\n this.rolloutPercentageItems().markAsDirty();\n }\n\n editSetting() {\n this.editSettingRequested.emit({ setting: this.setting() });\n }\n\n deleteSetting() {\n this.deleteSettingRequested.emit({ setting: this.setting() });\n }\n}\n","<div class=\"setting-full\"\n [formGroup]=\"formGroup\">\n <div class=\"delete\" (click)=\"deleteSetting()\" *ngIf=\"canDeleteSetting\" [matTooltip]=\"deleteSettingText\"\n data-robot=\"deleteSetting\">\n <mat-icon>cancel</mat-icon>\n </div>\n <div class=\"setting-header flex\">\n <div class=\"setting-name flex\">\n <div class=\"name\" data-robot=\"settingName\">\n {{setting().name}}\n <span *ngIf=\"showEnvironmentName\"> ({{environment().name}})</span>\n </div>\n <div class=\"edit\" matTooltip=\"Edit name and description\" (click)=\"editSetting()\" *ngIf=\"canEditSetting\"\n data-robot=\"renameSetting\">\n <mat-icon>edit</mat-icon>\n </div>\n </div>\n </div>\n <div class=\"setting-content\">\n <div class=\"setting-details\">\n <div class=\"setting-key\"><code data-robot=\"settingKey\">{{setting().key}}</code></div>\n <span *ngIf=\"setting().hint\" class=\"description\">{{setting().hint}}</span>\n </div>\n\n <div class=\"rules-list\">\n <div>\n <configcat-rollout-rules *ngIf=\"rolloutRules().controls.length !== 0\" [formGroup]=\"formGroup\">\n </configcat-rollout-rules>\n </div>\n\n <configcat-rollout-percentage-items *ngIf=\"rolloutPercentageItems().controls.length !== 0\"\n [formGroup]=\"formGroup\">\n </configcat-rollout-percentage-items>\n\n <div class=\"all-other flex\">\n <div *ngIf=\"rolloutPercentageItems().length === 0 && rolloutRules().length !== 0\"\n data-tooltip=\"This value will be served to all users who the above rules don't apply.\">\n <mat-chip-list>\n <mat-chip class=\"chip\">To all other users, serve:</mat-chip>\n </mat-chip-list>\n </div>\n <div *ngIf=\"rolloutPercentageItems().length !== 0\"\n data-tooltip=\"This fallback value will be served in case the user can't be identified.\">\n <mat-chip-list>\n <mat-chip class=\"chip\">To unidentified users, serve:</mat-chip>\n </mat-chip-list>\n </div>\n <div *ngIf=\"rolloutPercentageItems().length === 0 && rolloutRules().length === 0\">\n <mat-chip-list>\n <mat-chip class=\"chip\">To all users, serve:</mat-chip>\n </mat-chip-list>\n </div>\n <configcat-value class=\"served-value\" [valueFormControl]=\"value()\" [setting]=\"setting()\">\n </configcat-value>\n </div>\n <div class=\"buttons\">\n <button type=\"button\" class=\"sige-button targeting-button\" (click)=\"addRolloutRule()\" *ngIf=\"!readOnly\">\n {{rolloutRules().length === 0 ? 'Target specific users' : 'Add new targeting rule'}}\n </button>\n <button type=\"button\" class=\"sige-button targeting-button\" (click)=\"addRolloutPercentageItem()\"\n *ngIf=\"!readOnly\"\n [disabled]=\"setting().settingType === SettingType.Boolean && rolloutPercentageItems().length !== 0\">\n {{rolloutPercentageItems().length === 0 ? 'Target % of users' : 'Add new % option'}}\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, OnChanges } from '@angular/core';\nimport { SettingValuesModel, UpdateSettingValuesModel } from '../_models';\nimport { FormArray, FormGroup } from '@angular/forms';\nimport { Observable, Subscription } from 'rxjs';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ReasonDialogComponent } from '../dialogs/reason-dialog/reason-dialog.component';\nimport { SaveSnackbarComponent } from '../dialogs/save-snackbar/save-snackbar.component';\nimport { ConcurrentDialogComponent } from '../dialogs/concurrent-dialog/concurrent-dialog.component';\nimport { SettingListFormHelper } from '../_services/setting-list-form-helper';\n\n@Component({\n selector: 'configcat-setting-list',\n templateUrl: './setting-list.component.html',\n styleUrls: ['./setting-list.component.scss']\n})\nexport class SettingListComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() canEditSetting = false;\n @Input() canDeleteSetting = false;\n\n @Input() onSave!: (value: UpdateSettingValuesModel) => Observable<SettingValuesModel>;\n @Input() loadSettingValues!: () => Observable<SettingValuesModel>;\n @Input() deleteSettingText = 'Delete setting';\n @Input() showEnvironmentName = false;\n\n @Output() editSettingRequested = new EventEmitter();\n @Output() deleteSettingRequested = new EventEmitter();\n @Output() formValuesChanged = new EventEmitter();\n\n formValuesChangedSubscription!: Subscription | null;\n\n loading = true;\n\n settingValues!: SettingValuesModel;\n formGroup!: FormGroup;\n\n submitting = false;\n showRevertQuestion = false;\n showFeedBackMessage = false;\n readOnly = false;\n\n constructor(private formHelper: SettingListFormHelper,\n private snackBar: MatSnackBar,\n private dialog: MatDialog) { }\n\n ngOnInit(): void {\n this.reloadSettingValues();\n }\n\n ngOnChanges(): void {\n this.reloadSettingValues();\n }\n\n ngOnDestroy() {\n if (this.formValuesChangedSubscription) {\n this.formValuesChangedSubscription.unsubscribe();\n this.formValuesChangedSubscription = null;\n }\n }\n\n reloadSettingValues() {\n this.showFeedBackMessage = false;\n this.loading = true;\n this.loadSettingValues()\n .subscribe(settingValues => {\n this.readOnly = settingValues.readOnly;\n this.settingValues = settingValues;\n this.createFormGroup();\n this.loading = false;\n },\n error => {\n this.snackBar.open('Ooops. We could not load your Feature Flags and Settings. Please try again or contact us.',\n 'Dismiss', { duration: 60000, panelClass: 'red-snackbar' });\n });\n }\n\n createFormGroup() {\n this.formGroup = this.formHelper.createSettingValuesFormGroup(this.settingValues);\n this.formValuesChangedSubscription = this.formGroup.valueChanges.subscribe(() => {\n this.formValuesChanged.emit();\n });\n }\n\n settingValuesFormArray() {\n return this.formGroup.get('settingValues') as FormArray;\n }\n\n getSettingValueFormGroups() {\n return this.settingValuesFormArray().controls.map(c => c as FormGroup);\n }\n\n submit() {\n if (!this.formGroup || !this.formGroup.valid) {\n this.showFeedBackMessage = true;\n this.formGroup.markAsTouched();\n return;\n }\n\n this.showFeedBackMessage = false;\n this.submitting = true;\n\n const updateSettingValuesModel = <UpdateSettingValuesModel>{\n settingValues: this.formGroup.controls.settingValues.value,\n knownLastUpdatedAt: this.settingValues.lastUpdatedAt,\n forced: false\n };\n\n if (this.settingValues.reasonRequired) {\n const dialogRef = this.dialog.open(ReasonDialogComponent, {\n width: '450px'\n });\n dialogRef.afterClosed()\n .subscribe(result => {\n if (result && result.button === 'save' && result.reason) {\n\n updateSettingValuesModel.reason = result.reason;\n this.updateSettingValues(updateSettingValuesModel);\n } else {\n this.submitting = false;\n }\n });\n return;\n }\n\n this.updateSettingValues(updateSettingValuesModel);\n }\n\n updateSettingValues(updateSettingValuesModel: any) {\n this.onSave(updateSettingValuesModel).subscribe(settingValues => {\n this.settingValues = settingValues;\n this.createFormGroup();\n this.submitting = false;\n this.snackBar.openFromComponent(SaveSnackbarComponent, { duration: 5000, panelClass: 'green-snackbar' });\n }, (error) => {\n if (error.status === 400 && error.error\n && error.error.KnownLastUpdatedAt && error.error.KnownLastUpdatedAt[0] === 'Concurrent update') {\n const dialogRef = this.dialog.open(ConcurrentDialogComponent, {\n width: '560px'\n });\n dialogRef.afterClosed()\n .subscribe(result => {\n if (result && result.button === 'save') {\n updateSettingValuesModel.forced = true;\n this.updateSettingValues(updateSettingValuesModel);\n } else {\n this.reloadSettingValues();\n this.submitting = false;\n }\n });\n return;\n }\n\n if (error.status === 400 && error.error && error.error.Reason && error.error.Reason[0] === 'Reason required') {\n const dialogRef = this.dialog.open(ReasonDialogComponent, {\n width: '450px'\n });\n dialogRef.afterClosed()\n .subscribe(result => {\n if (result && result.button === 'save' && result.reason) {\n updateSettingValuesModel.reason = result.reason;\n this.updateSettingValues(updateSettingValuesModel);\n } else {\n this.submitting = false;\n }\n });\n return;\n }\n\n this.formGroup.setErrors({ internalServerError: 'Internal server error' });\n this.showFeedBackMessage = true;\n });\n }\n\n handleRevertYes() {\n this.showRevertQuestion = false;\n this.reloadSettingValues();\n }\n\n handleRevertCancel() {\n this.showRevertQuestion = false;\n }\n\n onEditSettingRequested(setting: any) {\n this.editSettingRequested.emit({\n setting: setting.setting,\n environment: this.settingValues.environment,\n config: this.settingValues.config\n });\n }\n\n onDeleteSettingRequested(setting: any) {\n this.deleteSettingRequested.emit({\n setting: setting.setting,\n environment: this.settingValues.environment,\n config: this.settingValues.config\n });\n }\n}\n","<form [formGroup]=\"formGroup\" (ngSubmit)=\"submit()\" *ngIf=\"!loading\">\n <div class=\"wrapper\" *ngFor=\"let settingValueFromGroup of getSettingValueFormGroups(); let i = index\">\n <setting [formGroup]=\"settingValueFromGroup\" [readOnly]=\"readOnly\" [canEditSetting]=\"canEditSetting\"\n [canDeleteSetting]=\"canDeleteSetting\" (editSettingRequested)=\"onEditSettingRequested($event)\"\n (deleteSettingRequested)=\"onDeleteSettingRequested($event)\" [deleteSettingText]=\"deleteSettingText\"\n [showEnvironmentName]=\"showEnvironmentName\">\n </setting>\n </div>\n\n <div class=\"save\" *ngIf=\"!readOnly && !submitting && formGroup.dirty\">\n <div class=\"feedback\" *ngIf=\"formGroup.touched && formGroup.invalid && showFeedBackMessage\">\n <div class=\"error\" *ngIf=\"formGroup.errors && formGroup.errors.internalServerError\">\n <span>Something went wrong and we could not save your settings. You can try again or <a\n href=\"https://configcat.com/support\" target=\"_blank\" rel=\"noopener noreferrer\">contact us.</a></span>\n </div>\n <div class=\"error\" *ngIf=\"!formGroup.errors || !formGroup.errors.internalServerError\">\n <span>Oh no! A feature flag has invalid or missing data.</span>\n </div>\n </div>\n <button type=\"button\" mat-stroked-button *ngIf=\"!showRevertQuestion\" (click)=\"showRevertQuestion = true\">\n <mat-icon>history</mat-icon><span>Revert changes</span>\n </button>\n <div *ngIf=\"showRevertQuestion\">\n <span class=\"revert\">Revert to last saved state?</span>\n <button type=\"button\" class=\"yes\" mat-stroked-button (click)=\"handleRevertYes()\">Yes</button>\n <button type=\"button\" mat-stroked-button (click)=\"handleRevertCancel()\">No</button>\n </div>\n <button class=\"save-button\" mat-flat-button color=\"warn\" type=\"submit\" [disabled]=\"submitting\">\n <mat-icon>backup</mat-icon> <span> Save & publish changes</span>\n </button>\n </div>\n</form>","import { Component, OnInit, Optional, Input, Output, EventEmitter } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\nimport { SettingValueModel, UpdateSettingValueModel } from 'ng-configcat-publicapi';\nimport { Observable, throwError, of } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\nimport { PublicApiService } from '../_services';\nimport { SettingValuesModel, UpdateSettingValuesModel } from '../_models';\n\n@Component({\n selector: 'configcat-setting-item',\n templateUrl: './setting-item.component.html',\n styleUrls: ['./setting-item.component.scss']\n})\nexport class SettingItemComponent extends BaseComponent implements OnInit {\n\n @Input() productId!: string;\n @Input() environmentId!: string;\n @Input() configId!: string;\n @Input() settingId!: number;\n\n @Input() canEditSetting = true;\n @Input() canDeleteSetting = true;\n @Input() deleteSettingText = 'Delete setting';\n @Input() showEnvironmentName = true;\n\n @Output() editSettingRequested = new EventEmitter();\n @Output() deleteSettingRequested = new EventEmitter();\n\n @Output() loadSucceeded = new EventEmitter();\n @Output() loadFailed = new EventEmitter();\n @Output() saveSucceeded = new EventEmitter();\n @Output() saveFailed = new EventEmitter();\n\n @Output() formValuesChanged = new EventEmitter();\n\n settingValue!: SettingValueModel;\n\n constructor(\n publicApiService: PublicApiService) {\n super(publicApiService);\n }\n\n ngOnInit(): void {\n }\n\n loadSettingValues = (): Observable<SettingValuesModel> => {\n return this.createSettingValuesService().getSettingValue(this.environmentId, this.settingId)\n .pipe(\n map(settingValue => {\n this.settingValue = settingValue;\n\n const settingValues = {\n settingValues: [settingValue],\n readOnly: settingValue.readOnly,\n config: settingValue.config,\n environment: settingValue.environment\n } as SettingValuesModel;\n\n this.loadSucceeded.emit(settingValues);\n return settingValues;\n }),\n catchError(error => {\n this.loadFailed.emit(error);\n return throwError(error);\n })\n );\n }\n\n handleSave = (model: UpdateSettingValuesModel): Observable<SettingValuesModel> => {\n if (model.settingValues.length === 0) {\n return of();\n }\n const updateModel = model.settingValues[0] as UpdateSettingValueModel;\n\n return this.createSettingValuesService().replaceSettingValue(\n this.environmentId, this.settingId, updateModel, model.reason)\n .pipe(\n map(settingValue => {\n this.settingValue = settingValue;\n\n const settingValues = {\n settingValues: [settingValue],\n readOnly: settingValue.readOnly,\n config: settingValue.config,\n environment: settingValue.environment\n } as SettingValuesModel;\n\n this.saveSucceeded.emit(settingValues);\n return settingValues;\n }),\n catchError(error => {\n this.saveFailed.emit(error);\n return throwError(error);\n })\n );\n }\n\n onEditSettingRequested(setting: any) {\n this.editSettingRequested.emit({\n setting: setting.setting,\n environment: this.settingValue.environment,\n config: this.settingValue.config\n });\n }\n\n onDeleteSettingRequested(setting: any) {\n this.deleteSettingRequested.emit({\n setting: setting.setting,\n environment: this.settingValue.environment,\n config: this.settingValue.config\n });\n }\n\n onFormValuesChanged() {\n this.formValuesChanged.emit();\n }\n}\n","<configcat-setting-list [canEditSetting]=\"canEditSetting\" [canDeleteSetting]=\"canDeleteSetting\"\n [onSave]=\"handleSave\" [loadSettingValues]=\"loadSettingValues\"\n (editSettingRequested)=\"onEditSettingRequested($event)\" (deleteSettingRequested)=\"onDeleteSettingRequested($event)\"\n [deleteSettingText]=\"deleteSettingText\"\n [showEnvironmentName]=\"showEnvironmentName\" (formValuesChanged)=\"onFormValuesChanged()\">\n</configcat-setting-list>","import { Component, OnInit, Optional, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { SettingModel } from 'ng-configcat-publicapi';\nimport { FormControl } from '@angular/forms';\nimport { PublicApiService } from '../../_services';\n\n@Component({\n selector: 'configcat-setting-select',\n templateUrl: './setting-select.component.html',\n styleUrls: ['./setting-select.component.css']\n})\nexport class SettingSelectComponent extends BaseComponent implements OnInit, OnChanges {\n\n @Input() valueFormControl!: FormControl;\n @Input() configId!: string;\n settings: SettingModel[] = [];\n\n constructor(\n publicApiService: PublicApiService) {\n super(publicApiService);\n }\n\n ngOnInit(): void {\n this.settings = [];\n this.reloadSettings();\n }\n\n ngOnChanges() {\n this.reloadSettings();\n }\n\n reloadSettings() {\n if (this.configId) {\n this.createSettingsService().getSettings(this.configId).subscribe(settings => {\n this.settings = settings;\n if (this.settings.length > 0) {\n this.valueFormControl.setValue(this.settings[0].settingId);\n }\n });\n }\n }\n}\n","<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Feature flag or setting\" [formControl]=\"valueFormControl\" *ngIf=\"settings\" name=\"value\">\n <mat-option *ngFor=\"let setting of settings\" [value]=\"setting.settingId\">{{setting.name}}\n </mat-option>\n </mat-select>\n</mat-form-field>","import { Component, OnInit, Optional, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { ProductModel } from 'ng-configcat-publicapi';\nimport { FormControl } from '@angular/forms';\nimport { PublicApiService } from '../../_services';\n\n@Component({\n selector: 'configcat-product-select',\n templateUrl: './product-select.component.html',\n styleUrls: ['./product-select.component.css']\n})\nexport class ProductSelectComponent extends BaseComponent implements OnInit {\n\n @Input() valueFormControl!: FormControl;\n products: ProductModel[] = [];\n\n constructor(\n publicApiService: PublicApiService) {\n super(publicApiService);\n }\n\n ngOnInit(): void {\n this.products = [];\n this.createProductsService().getProducts().subscribe(products => {\n this.products = products;\n if (this.products.length > 0) {\n this.valueFormControl.setValue(this.products[0].productId, {\n emitEvent: true,\n emitModelToViewChange: true, emitViewToModelChange: true\n });\n }\n });\n }\n\n}\n","<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Product\" [formControl]=\"valueFormControl\" name=\"productValue\">\n <mat-option *ngFor=\"let product of products\" [value]=\"product.productId\">{{product.name}}\n </mat-option>\n </mat-select>\n</mat-form-field>","import { Component, OnInit, Inject, Input, Optional, Output, EventEmitter, OnChanges, forwardRef } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { ConfigModel } from 'ng-configcat-publicapi';\nimport { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\nimport { PublicApiService } from '../../_services';\n\n@Component({\n selector: 'configcat-config-select',\n templateUrl: './config-select.component.html',\n styleUrls: ['./config-select.component.css'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConfigSelectComponent),\n multi: true\n }\n ]\n})\nexport class ConfigSelectComponent extends BaseComponent implements OnInit, OnChanges {\n\n @Input() valueFormControl!: FormControl;\n @Input() productId!: string;\n configs: ConfigModel[] = [];\n\n constructor(\n publicApiService: PublicApiService) {\n super(publicApiService);\n }\n\n ngOnInit(): void {\n this.configs = [];\n this.reloadConfigs();\n }\n\n ngOnChanges() {\n this.reloadConfigs();\n }\n\n reloadConfigs() {\n if (this.productId) {\n this.createConfigsService().getConfigs(this.productId).subscribe(configs => {\n this.configs = configs;\n if (this.configs.length > 0) {\n this.valueFormControl.setValue(this.configs[0].configId);\n }\n });\n }\n }\n}\n","<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Config\" [formControl]=\"valueFormControl\" *ngIf=\"configs\" name=\"value\">\n <mat-option *ngFor=\"let config of configs\" [value]=\"config.configId\">{{config.name}}</mat-option>\n </mat-select>\n</mat-form-field>","import { Component, OnInit, Optional, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { EnvironmentModel } from 'ng-configcat-publicapi';\nimport { FormControl } from '@angular/forms';\nimport { PublicApiService } from '../../_services';\n\n@Component({\n selector: 'configcat-environment-select',\n templateUrl: './environment-select.component.html',\n styleUrls: ['./environment-select.component.css']\n})\nexport class EnvironmentSelectComponent extends BaseComponent implements OnInit, OnChanges {\n\n @Input() valueFormControl!: FormControl;\n @Input() productId!: string;\n environments: EnvironmentModel[] = [];\n\n constructor(\n publicApiService: PublicApiService) {\n super(publicApiService);\n }\n\n ngOnInit(): void {\n this.environments = [];\n this.reloadEnvironments();\n }\n\n ngOnChanges() {\n this.reloadEnvironments();\n }\n\n reloadEnvironments() {\n if (this.productId) {\n this.createEnvironmentsService().getEnvironments(this.productId).subscribe(environments => {\n this.environments = environments;\n if (this.environments.length > 0) {\n this.valueFormControl.setValue(this.environments[0].environmentId);\n }\n });\n }\n }\n\n}\n","<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Environment\" [formControl]=\"valueFormControl\" *ngIf=\"environments\" name=\"value\">\n <mat-option *ngFor=\"let environment of environments\" [value]=\"environment.environmentId\">{{environment.name}}\n </mat-option>\n </mat-select>\n</mat-form-field>","import { AbstractControl } from '@angular/forms';\n\nexport class FormHelper {\n\n public static getErrorMessage(control: AbstractControl, hint: string = '') {\n if (!control || control.valid) {\n return;\n }\n\n if (control.hasError('required')) {\n return `${hint} The field is required.`;\n }\n\n if (control.hasError('pattern')) {\n return 'Not a valid e-mail address.';\n }\n\n if (control.hasError('minlength')) {\n return 'The field must be at least ' + control.getError('minlength').requiredLength + ' characters long';\n }\n\n if (control.hasError('maxlength')) {\n return 'The field must be at max ' + control.getError('maxlength').requiredLength + ' characters long';\n }\n\n return;\n }\n}\n","import { Component, OnInit, Optional, Input, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { PublicApiService } from '../_services';\nimport { FormHelper } from '../_services/form-helper';\n\n@Component({\n selector: 'configcat-authorization',\n templateUrl: './authorization.component.html',\n styleUrls: ['./authorization.component.scss']\n})\nexport class AuthorizationComponent implements OnInit {\n\n formGroup!: FormGroup;\n @Input() basePath = null;\n @Output() authorized = new EventEmitter();\n FormHelper = FormHelper;\n\n constructor(\n private formBuilder: FormBuilder,\n private publicApiService: PublicApiService\n ) { }\n\n ngOnInit(): void {\n this.formGroup = this.formBuilder.group({\n basicAuthUsername: ['', Validators.required],\n basicAuthPassword: ['', Validators.required],\n });\n }\n\n onSubmit() {\n if (!this.formGroup.valid) {\n return;\n }\n\n const meService = this.publicApiService.createMeService(\n this.formGroup.controls.basicAuthUsername.value,\n this.formGroup.controls.basicAuthPassword.value,\n this.basePath);\n\n meService.getMe().subscribe(me => {\n this.authorized.emit({\n basicAuthUsername: this.formGroup.controls.basicAuthUsername.value,\n basicAuthPassword: this.formGroup.controls.basicAuthPassword.value\n });\n },\n error => {\n this.formGroup.setErrors({ invalidAuthorization: 'Invalid Basic auth user name or password' });\n }\n );\n }\n\n}\n","<form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"container\">\n <div class=\"form\">\n <p>\n <a href=\"https://app.configcat.com/my-account/public-api-credentials\" target=\"_blank\">\n Get your Basic Auth user name and password</a> to access ConfigCat Public API.\n <br /><br />\n <b>Note!</b> Your ConfigCat account's email address and password will not work here.\n </p>\n\n <mat-form-field class=\"form-field\">\n <mat-label>Basic auth user name</mat-label>\n <input matInput placeholder=\"Basic auth user name\" formControlName=\"basicAuthUsername\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthUsername.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthUsername)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field class=\"form-field\">\n <mat-label>Basic auth password</mat-label>\n <input matInput placeholder=\"Basic auth password\" formControlName=\"basicAuthPassword\" type=\"password\"\n autocomplete=\"current-password\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthPassword.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthPassword)}}\n </mat-error>\n </mat-form-field>\n <div>\n <button mat-raised-button color=\"primary\" type=\"submit\" class=\"submit\">Authorize</button>\n <mat-error *ngIf=\"formGroup.invalid && formGroup.errors && formGroup.errors.invalidAuthorization\">\n {{formGroup.errors.invalidAuthorization}}</mat-error>\n </div>\n </div>\n </div>\n</form>","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { SettingItemComponent } from './setting-item/setting-item.component';\nimport { SettingSelectComponent } from './selects/setting-select/setting-select.component';\nimport { ProductSelectComponent } from './selects/product-select/product-select.component';\nimport { ConfigSelectComponent } from './selects/config-select/config-select.component';\nimport { EnvironmentSelectComponent } from './selects/environment-select/environment-select.component';\nimport { Configuration } from './configuration';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AuthorizationComponent } from './authorization/authorization.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { ConcurrentDialogComponent } from './dialogs/concurrent-dialog/concurrent-dialog.component';\nimport { ExpandDialogComponent } from './dialogs/expand-dialog/expand-dialog.component';\nimport { ReasonDialogComponent } from './dialogs/reason-dialog/reason-dialog.component';\nimport { SaveSnackbarComponent } from './dialogs/save-snackbar/save-snackbar.component';\nimport { RolloutPercentageItemsComponent } from './setting-list/setting/rollout-percentage-items/rollout-percentage-items.component';\nimport { RolloutRulesComponent } from './setting-list/setting/rollout-rules/rollout-rules.component';\nimport { ValueComponent } from './setting-list/setting/value/value.component';\nimport { SettingListComponent } from './setting-list/setting-list.component';\nimport { SettingComponent } from './setting-list/setting/setting.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { RouterModule } from '@angular/router';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { BaseComponent } from './base/base.component';\nimport { ApiModule } from 'ng-configcat-publicapi';\n\n@NgModule({\n declarations: [\n BaseComponent,\n ProductSelectComponent,\n ConfigSelectComponent,\n EnvironmentSelectComponent,\n SettingSelectComponent,\n SettingItemComponent,\n AuthorizationComponent,\n SettingListComponent,\n SettingComponent,\n RolloutPercentageItemsComponent,\n RolloutRulesComponent,\n ValueComponent,\n ReasonDialogComponent,\n ConcurrentDialogComponent,\n SaveSnackbarComponent,\n ExpandDialogComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n BrowserAnimationsModule,\n MatFormFieldModule,\n MatOptionModule,\n MatSelectModule,\n MatButtonModule,\n MatInputModule,\n MatIconModule,\n MatTooltipModule,\n MatChipsModule,\n MatAutocompleteModule,\n DragDropModule,\n RouterModule,\n MatSnackBarModule,\n MatDialogModule,\n MatMenuModule,\n ApiModule\n ],\n exports: [\n AuthorizationComponent,\n\n ProductSelectComponent,\n ConfigSelectComponent,\n EnvironmentSelectComponent,\n SettingSelectComponent,\n\n SettingItemComponent\n ]\n})\nexport class NgConfigCatPublicApiUIModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<NgConfigCatPublicApiUIModule> {\n return {\n ngModule: NgConfigCatPublicApiUIModule,\n providers: [{ provide: Configuration, useFactory: configurationFactory }]\n };\n }\n\n constructor() { }\n}\n","/*\n * Public API Surface of ng-configcat-publicapi-ui\n */\n\nexport * from './lib/ng-configcat-publicapi-ui.module';\nexport * from './lib/_services';\nexport * from './lib/setting-item/setting-item.component';\nexport * from './lib/authorization/authorization.component';\nexport * from './lib/selects/product-select/product-select.component';\nexport * from './lib/selects/config-select/config-select.component';\nexport * from './lib/selects/environment-select/environment-select.component';\nexport * from './lib/selects/setting-select/setting-select.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Injectable","MeService","PublicApiConfiguration","ProductsService","ConfigsService","EnvironmentsService","FeatureFlagsSettingsService","FeatureFlagSettingValuesService","IntegrationLinksService","Optional","Component","Input","Validators","SettingType","MAT_DIALOG_DATA","Inject","RolloutRuleComparator","moveItemInArray","valid","EventEmitter","Output","map","catchError","throwError","of","NG_VALUE_ACCESSOR","forwardRef","CommonModule","FormsModule","ReactiveFormsModule","BrowserAnimationsModule","MatFormFieldModule","MatOptionModule","MatSelectModule","MatButtonModule","MatInputModule","MatIconModule","MatTooltipModule","MatChipsModule","MatAutocompleteModule","DragDropModule","RouterModule","MatSnackBarModule","MatDialogModule","MatMenuModule","ApiModule","NgModule"],"mappings":"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"}