@po-ui/ng-components 17.26.7 → 17.26.8

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 (34) hide show
  1. package/esm2022/lib/components/po-accordion/po-accordion.module.mjs +13 -1
  2. package/esm2022/lib/components/po-chart/po-chart.component.mjs +3 -2
  3. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.mjs +2 -2
  4. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.mjs +1 -1
  5. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.mjs +25 -3
  6. package/esm2022/lib/components/po-list-view/po-list-view.module.mjs +13 -1
  7. package/esm2022/lib/components/po-navbar/po-navbar.module.mjs +13 -1
  8. package/esm2022/lib/components/po-page/po-page-slide/po-page-slide-base.component.mjs +36 -1
  9. package/esm2022/lib/components/po-slide/po-slide.module.mjs +13 -1
  10. package/esm2022/lib/components/po-tree-view/po-tree-view.module.mjs +13 -1
  11. package/esm2022/lib/services/po-theme/po-theme.service.mjs +2 -2
  12. package/fesm2022/po-ui-ng-components.mjs +123 -5
  13. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  14. package/lib/components/po-accordion/po-accordion.module.d.ts +12 -0
  15. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.d.ts +1 -1
  16. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +2 -2
  17. package/lib/components/po-list-view/po-list-view.module.d.ts +12 -0
  18. package/lib/components/po-navbar/po-navbar.module.d.ts +12 -0
  19. package/lib/components/po-page/po-page-slide/po-page-slide-base.component.d.ts +35 -0
  20. package/lib/components/po-slide/po-slide.module.d.ts +12 -0
  21. package/lib/components/po-tree-view/po-tree-view.module.d.ts +12 -0
  22. package/package.json +4 -4
  23. package/po-ui-ng-components-17.26.8.tgz +0 -0
  24. package/schematics/ng-add/index.js +1 -1
  25. package/schematics/ng-update/v14/index.js +1 -1
  26. package/schematics/ng-update/v15/index.js +1 -1
  27. package/schematics/ng-update/v16/index.js +1 -1
  28. package/schematics/ng-update/v17/index.js +1 -1
  29. package/schematics/ng-update/v2/index.js +1 -1
  30. package/schematics/ng-update/v3/index.js +1 -1
  31. package/schematics/ng-update/v4/index.js +1 -1
  32. package/schematics/ng-update/v5/index.js +1 -1
  33. package/schematics/ng-update/v6/index.js +1 -1
  34. package/po-ui-ng-components-17.26.7.tgz +0 -0
@@ -223,7 +223,7 @@ export class PoThemeService {
223
223
  let selectBgIcon = '';
224
224
  if (themeColor?.brand?.['01']?.dark) {
225
225
  const selector = this.iconNameLib === 'PhosphorIcon' ? 'po-select .po-select-phosphor' : 'po-select';
226
- selectBgIcon += `${selector} { --background-image: url(${this.getSelectBgIcon(themeColor.brand['01'].dark)}); };`;
226
+ selectBgIcon += `${selector} { --background-image: url(${this.getSelectBgIcon(themeColor.neutral.dark[70])}); };`;
227
227
  }
228
228
  if (themeColor?.feedback?.negative?.base) {
229
229
  if (this.iconNameLib === 'PoIcon') {
@@ -289,4 +289,4 @@ export class PoThemeService {
289
289
  type: Inject,
290
290
  args: [ICONS_DICTIONARY]
291
291
  }] }], null); })();
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2VydmljZXMvcG8tdGhlbWUvcG8tdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSWxFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVwRjs7Ozs7Ozs7R0FRRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBVUc7SUFDQTtJQVZwQixRQUFRLENBQVk7SUFDcEIsS0FBSyxHQUFZLGNBQWMsQ0FBQztJQUNoQyxVQUFVLENBQTRCO0lBRTlDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQzRCLE1BQWMsRUFDZCxRQUFrQixFQUM1QyxlQUFpQyxFQUNLLEtBQWdDO1FBSDVDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSTVDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLElBQUksZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsUUFBUSxDQUFDLEtBQWMsRUFBRSxZQUE2QixlQUFlLENBQUMsS0FBSztRQUN6RSxvRkFBb0Y7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TUFBTTs7aUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVdJLE1BQU07dUJBQUMsUUFBUTs7c0JBQ2YsTUFBTTt1QkFBQyxRQUFROztzQkFFZixRQUFROztzQkFBSSxNQUFNO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb1RoZW1lVHlwZUVudW0gfSBmcm9tICcuL2VudW0vcG8tdGhlbWUtdHlwZS5lbnVtJztcbmltcG9ydCB7IHBvVGhlbWVEZWZhdWx0IH0gZnJvbSAnLi9oZWxwZXJzL3BvLXRoZW1lLXBvdWkuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9UaGVtZUNvbG9yIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRoZW1lLWNvbG9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RoZW1lVG9rZW5zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRoZW1lLXRva2Vucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UaGVtZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10aGVtZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUNPTlNfRElDVElPTkFSWSwgUG9JY29uRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcG8taWNvbi9pbmRleCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgUG9UaGVtZVNlcnZpY2VgIHBvc3NpYmlsaXRhIGEgcGVyc29uYWxpemHDp8OjbyBkYXMgY29yZXMgZG8gdGVtYSBwYWRyw6NvIGRvIGBQTy1VSWAsIHBlcm1pdGluZG8gYSBhbHRlcmHDp8OjbyBkb3MgdmFsb3JlcyBkYXMgdmFyacOhdmVpcyBkZSBlc3RpbG8gdXNhZGFzIG5vIENTUyBwYWRyw6NvLlxuICpcbiAqID4gUGFyYSBzYWJlciBtYWlzIHNvYnJlIGNvbW8gY3VzdG9taXphciBhcyBjb3JlcyBkbyB0ZW1hIHBhZHLDo28gdmVyaWZpcXVlIG8gaXRlbSBbQ3VzdG9taXphbmRvIGNvcmVzIGRvIHRlbWEgcGFkcsOjb10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvY29sb3JzLWN1c3RvbWl6YXRpb24pIG5hIGFiYSBgR3VpYXNgLlxuICpcbiAqID4gT2JzLjogTsOjbyBlc3TDoSBkb2N1bWVudGFkbyBhcXVpIGUgbsOjbyBpbmRpY2Ftb3MgYSBjdXN0b21pemHDp8OjbyBkYXMgY29yZXMgZGUgJ2ZlZWRiYWNrJyBwb3IgbW90aXZvcyBkZSBhY2Vzc2liaWxpZGFkZSBlIHVzYWJpbGlkYWRlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQb1RoZW1lU2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgcHJpdmF0ZSB0aGVtZTogUG9UaGVtZSA9IHBvVGhlbWVEZWZhdWx0O1xuICBwcml2YXRlIF9pY29uVG9rZW46IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgZ2V0IGljb25OYW1lTGliKCkge1xuICAgIHJldHVybiB0aGlzLl9pY29uVG9rZW4uTkFNRV9MSUI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdXaW5kb3cnKSBwcml2YXRlIHdpbmRvdzogV2luZG93LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElDT05TX0RJQ1RJT05BUlkpIHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICkge1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG5cbiAgICB0aGlzLl9pY29uVG9rZW4gPSB2YWx1ZSA/PyBQb0ljb25EaWN0aW9uYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBvIHRlbWEgYSBzZXIgYXBsaWNhZG8gbm8gY29tcG9uZW50ZSwgZGUgYWNvcmRvIGNvbSBvIHRpcG8gZGUgdGVtYSBlc3BlY2lmaWNhZG8uXG4gICAqXG4gICAqIEVzdGUgbcOpdG9kbyBkZWZpbmUgbyB0ZW1hIGEgc2VyIGFwbGljYWRvIG5vIGNvbXBvbmVudGUgY29tIGJhc2Ugbm8gb2JqZXRvIGB0aGVtZWAgZm9ybmVjaWRvIGUgbm8gdGlwbyBkZSB0ZW1hIGVzcGVjaWZpY2Fkby5cbiAgICogRWxlIGF0dWFsaXphIGFzIHByb3ByaWVkYWRlcyBkbyBjb21wb25lbnRlIHBhcmEgcmVmbGV0aXIgbyB0ZW1hIHNlbGVjaW9uYWRvLCBjb21vIGNvcmVzLCBlc3RpbG9zIGUgY29tcG9ydGFtZW50b3MuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZX0gdGhlbWUgLSBPYmpldG8gY29udGVuZG8gYXMgZGVmaW5pw6fDtWVzIGRlIHRlbWEgYSBzZXJlbSBhcGxpY2FkYXMgbm8gY29tcG9uZW50ZS5cbiAgICogQHBhcmFtIHtQb1RoZW1lVHlwZUVudW19IFt0aGVtZVR5cGU9UG9UaGVtZVR5cGVFbnVtLmxpZ2h0XSAtIChPcGNpb25hbCkgVGlwbyBkZSB0ZW1hIGEgc2VyIGFwbGljYWRvLCBwb2RlbmRvIHNlciAnbGlnaHQnIChjbGFybykgb3UgJ2RhcmsnIChlc2N1cm8pLiBQb3IgcGFkcsOjbywgbyB0ZW1hIGNsYXJvIMOpIGFwbGljYWRvLlxuICAgKi9cbiAgc2V0VGhlbWUodGhlbWU6IFBvVGhlbWUsIHRoZW1lVHlwZTogUG9UaGVtZVR5cGVFbnVtID0gUG9UaGVtZVR5cGVFbnVtLmxpZ2h0KTogdm9pZCB7XG4gICAgLy8gQ2hhbmdlIHRoZW1lIG5hbWUsIHJlbW92ZSBzcGVjaWFsIGNoYXJhY3RlcmVzIGFuZCBudW1iZXIsIHJlcGxhY2Ugc3BhY2Ugd2l0aCBkYXNoXG4gICAgdGhlbWUubmFtZSA9IHRoZW1lLm5hbWVcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVogXS9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXHMrL2csICctJyk7XG4gICAgdGhlbWUuYWN0aXZlID0gdGhlbWVUeXBlO1xuXG4gICAgY29uc3QgX3RoZW1lVHlwZSA9IHRoZW1lLnR5cGVbUG9UaGVtZVR5cGVFbnVtW3RoZW1lVHlwZV1dO1xuICAgIGlmICghX3RoZW1lVHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbG9yU3R5bGVzID0gX3RoZW1lVHlwZS5jb2xvciA/IHRoaXMuZ2VuZXJhdGVUaGVtZVN0eWxlcyhfdGhlbWVUeXBlLmNvbG9yKSA6ICcnO1xuICAgIGNvbnN0IHBlckNvbXBvbmVudFN0eWxlcyA9IF90aGVtZVR5cGUucGVyQ29tcG9uZW50ID8gdGhpcy5nZW5lcmF0ZVBlckNvbXBvbmVudFN0eWxlcyhfdGhlbWVUeXBlLnBlckNvbXBvbmVudCkgOiAnJztcbiAgICBjb25zdCBvblJvb3RTdHlsZXMgPSBfdGhlbWVUeXBlLm9uUm9vdCA/IHRoaXMuZ2VuZXJhdGVBZGRpdGlvbmFsU3R5bGVzKF90aGVtZVR5cGUub25Sb290KSA6ICcnO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxTdHlsZXMgPSB0aGlzLmdlbmVyYXRlQWRkaXRpb25hbFN0eWxlcyhfdGhlbWVUeXBlKTtcblxuICAgIGNvbnN0IGNvbWJpbmVkU3R5bGVzID0gYFxuICAgICAgLiR7dGhlbWUubmFtZX0tJHtQb1RoZW1lVHlwZUVudW1bdGhlbWVUeXBlXX06cm9vdCB7XG4gICAgICAgICR7Y29sb3JTdHlsZXN9XG4gICAgICAgICR7cGVyQ29tcG9uZW50U3R5bGVzfVxuICAgICAgICAke29uUm9vdFN0eWxlc31cbiAgICAgICAgJHthZGRpdGlvbmFsU3R5bGVzfVxuICAgICAgfWA7XG5cbiAgICB0aGlzLmFwcGx5VGhlbWVTdHlsZXMoY29tYmluZWRTdHlsZXMpO1xuICAgIHRoaXMuY2hhbmdlVGhlbWVUeXBlKHRoZW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogR2VyYSBlc3RpbG9zIGFkaWNpb25haXMgY29tIGJhc2Ugbm9zIHRva2VucyBkZSB0ZW1hIGZvcm5lY2lkb3MsIGV4Y2x1aW5kbyBvcyB0b2tlbnMgZGUgY29yLlxuICAgKiBAcGFyYW0gdGhlbWUgT3MgdG9rZW5zIGRlIHRlbWEgY29udGVuZG8gb3MgZXN0aWxvcyBhZGljaW9uYWlzIGEgc2VyZW0gZ2VyYWRvcy5cbiAgICogQHJldHVybnMgVW1hIHN0cmluZyBjb250ZW5kbyBvcyBlc3RpbG9zIGFkaWNpb25haXMgZm9ybWF0YWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVBZGRpdGlvbmFsU3R5bGVzKHRoZW1lOiBQb1RoZW1lVG9rZW5zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhlbWUpXG4gICAgICAuZmlsdGVyKChba2V5XSkgPT4gIVsnY29sb3InLCAncGVyQ29tcG9uZW50JywgJ29uUm9vdCddLmluY2x1ZGVzKGtleSkpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX06ICR7dmFsdWV9O2ApXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBBcGxpY2Egb3MgZXN0aWxvcyBkZSB0ZW1hIGFvIGRvY3VtZW50by5cbiAgICogQHBhcmFtIHN0eWxlQ3NzIE9zIGVzdGlsb3MgQ1NTIGEgc2VyZW0gYXBsaWNhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseVRoZW1lU3R5bGVzKHN0eWxlQ3NzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLmNyZWF0ZVN0eWxlRWxlbWVudChzdHlsZUNzcyk7XG4gICAgY29uc3QgZXhpc3RpbmdTdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJyNwb3VpVGhlbWUnKTtcblxuICAgIGlmIChleGlzdGluZ1N0eWxlRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5oZWFkLCBleGlzdGluZ1N0eWxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5oZWFkLCBzdHlsZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VUaGVtZVR5cGUodGhlbWU6IFBvVGhlbWUpIHtcbiAgICB0aGlzLmNsZWFuVGhlbWVBY3RpdmUoKTtcbiAgICB0aGlzLnNldFRoZW1lQWN0aXZlKHRoZW1lKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaHRtbCcpWzBdLmNsYXNzTGlzdC5hZGQoLi4uW2Ake3RoZW1lLm5hbWV9LSR7UG9UaGVtZVR5cGVFbnVtW3RoZW1lLmFjdGl2ZV19YF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNpc3RlIGUgZGVmaW5lIG8gdGVtYSBkbyBhcGxpY2F0aXZvIGNvbSBiYXNlIG5vcyBkYWRvcyBhcm1hemVuYWRvcy5cbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIHJlY3VwZXJhIG9zIGRhZG9zIGRvIHRlbWEgYXJtYXplbmFkb3MgZSBvcyBhcGxpY2EgYW8gYXBsaWNhdGl2by5cbiAgICpcbiAgICogQHJldHVybnMge1BvVGhlbWV9IFJlY3VwZXJhIG8gdGVtYSBhcm1hemVuYWRvLlxuICAgKi9cbiAgcGVyc2lzdFRoZW1lQWN0aXZlKCkge1xuICAgIGNvbnN0IF90aGVtZSA9IHRoaXMuZ2V0VGhlbWVBY3RpdmUoKTtcbiAgICB0aGlzLnNldFRoZW1lKF90aGVtZSwgX3RoZW1lLmFjdGl2ZSk7XG4gICAgcmV0dXJuIF90aGVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbHRlcmEgbyB0aXBvIGRvIHRlbWEgYXJtYXplbmFkbyBlIGFwbGljYSBvcyBub3ZvcyBlc3RpbG9zIGFvIGRvY3VtZW50by5cbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIGFsdGVyYSBvIHRpcG8gZG8gdGVtYSBhcm1hemVuYWRvIGF0aXZvIChsaWdodC9kYXJrKVxuICAgKlxuICAgKiBAcGFyYW0ge1BvVGhlbWVUeXBlRW51bX0gdGhlbWVUeXBlIE8gdGlwbyBkZSB0ZW1hIGEgc2VyIGFwbGljYWRvLCBsaWdodCBvdSBkYXJrLlxuICAgKi9cbiAgY2hhbmdlQ3VycmVudFRoZW1lVHlwZSh0eXBlOiBQb1RoZW1lVHlwZUVudW0pOiB2b2lkIHtcbiAgICBjb25zdCBfdGhlbWUgPSB0aGlzLmdldFRoZW1lQWN0aXZlKCk7XG4gICAgX3RoZW1lLmFjdGl2ZSA9IHR5cGU7XG4gICAgdGhpcy5jaGFuZ2VUaGVtZVR5cGUoX3RoZW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNw6l0b2RvIHJlbW92ZSBvIHRlbWEgYXJtYXplbmFkbyBlIGxpbXBhIHRvZG9zIG9zIGVzdGlsb3MgZGUgdGVtYVxuICAgKiBhcGxpY2Fkb3MgYW8gZG9jdW1lbnRvLlxuICAgKi9cbiAgY2xlYW5UaGVtZUFjdGl2ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBfdGhlbWUgPSB0aGlzLmdldFRoZW1lQWN0aXZlKCk7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2h0bWwnKVswXS5jbGFzc0xpc3QucmVtb3ZlKGAke190aGVtZS5uYW1lfS0ke1BvVGhlbWVUeXBlRW51bVtfdGhlbWUuYWN0aXZlXX1gKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG90dnMtdGhlbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIGRlZmluZSB1bSBkYWRvcyBkbyB0ZW1hIGUgbyBhcm1hemVuYS5cbiAgICogQHBhcmFtIHRoZW1lIE9zIHRva2VucyBkZSB0ZW1hIGNvbnRlbmRvIG9zIGVzdGlsb3MgYWRpY2lvbmFpcyBhIHNlcmVtIGdlcmFkb3MuXG4gICAqL1xuICBwcml2YXRlIHNldFRoZW1lQWN0aXZlKHRoZW1lOiBQb1RoZW1lKTogdm9pZCB7XG4gICAgaWYgKHRoZW1lKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG90dnMtdGhlbWUnLCBKU09OLnN0cmluZ2lmeSh0aGVtZSkpO1xuICAgICAgdGhpcy50aGVtZSA9IHRoZW1lO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRvcm5hIG8gdGVtYSBhdGl2byBjb21vIHVtIG9ic2VydmFibGUuXG4gICAqIEByZXR1cm5zIHtQb1RoZW1lfSBUZW1hIGF0aXZvLlxuICAgKi9cbiAgZ2V0VGhlbWVBY3RpdmUoKTogUG9UaGVtZSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRoZW1lRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RvdHZzLXRoZW1lJykpO1xuICAgICAgaWYgKHRoZW1lRGF0YSAmJiBKU09OLnN0cmluZ2lmeSh0aGVtZURhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnRoZW1lKSkge1xuICAgICAgICB0aGlzLnRoZW1lID0gdGhlbWVEYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvIGFvIG9idGVyIG8gdGVtYSBkbyBhcm1hemVuYW1lbnRvIGxvY2FsOicsIGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudGhlbWU7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIEdlcmEgZXN0aWxvcyBDU1MgY29tIGJhc2Ugbm9zIHRva2VucyBkZSBjb3JlcyBmb3JuZWNpZG9zLlxuICAgKiBAcGFyYW0gdGhlbWVDb2xvciBPcyB0b2tlbnMgZGUgY29yIGEgc2VyZW0gdXNhZG9zIHBhcmEgZ2VyYXIgb3MgZXN0aWxvcy5cbiAgICogQHJldHVybnMgVW1hIHN0cmluZyBjb250ZW5kbyBvcyBlc3RpbG9zIENTUyBnZXJhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVTdHlsZUVsZW1lbnQoY3NzOiBzdHJpbmcpOiBIVE1MU3R5bGVFbGVtZW50IHtcbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGVFbGVtZW50LmlkID0gJ3BvdWlUaGVtZSc7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChjc3MpKTtcbiAgICByZXR1cm4gc3R5bGVFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBHZXJhIGVzdGlsb3MgQ1NTIGNvbSBiYXNlIG5vcyB0b2tlbnMgZGUgY29yZXMgZm9ybmVjaWRvcy5cbiAgICogQHBhcmFtIHRoZW1lQ29sb3IgT3MgdG9rZW5zIGRlIGNvciBhIHNlcmVtIHVzYWRvcyBwYXJhIGdlcmFyIG9zIGVzdGlsb3MuXG4gICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gb3MgZXN0aWxvcyBDU1MgZ2VyYWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVUaGVtZVN0eWxlcyh0aGVtZUNvbG9yOiBQb1RoZW1lQ29sb3IpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdEJnSWNvblN0eWxlID0gdGhpcy5nZXRTZWxlY3RCZ0ljb25zU3R5bGUodGhlbWVDb2xvcik7XG5cbiAgICByZXR1cm4gW1xuICAgICAgT2JqZWN0LmVudHJpZXModGhlbWVDb2xvcilcbiAgICAgICAgLmZsYXRNYXAoKFt0eXBlLCB2YWx1ZXNdKSA9PlxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlcykuZmxhdE1hcCgoW3RvbmFsaXR5LCB0b25hbGl0eVZhbHVlc10pID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnYWN0aW9uJykge1xuICAgICAgICAgICAgICByZXR1cm4gW2AtLWNvbG9yLSR7dHlwZX0tJHt0b25hbGl0eX06ICR7dG9uYWxpdHlWYWx1ZXN9O2BdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRvbmFsaXR5VmFsdWVzKS5tYXAoXG4gICAgICAgICAgICAgICAgKFtsZXZlbCwgY29sb3JWYWx1ZV0pID0+IGAtLWNvbG9yLSR7dHlwZX0tJHt0b25hbGl0eX0tJHtsZXZlbH06ICR7Y29sb3JWYWx1ZX07YFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJycpLFxuICAgICAgc2VsZWN0QmdJY29uU3R5bGVcbiAgICBdLmpvaW4oJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBHZXJhIGVzdGlsb3MgQ1NTIGNvbSBiYXNlIG5vcyB0b2tlbnMgcGVyIENvbXBvbmVudCBmb3JuZWNpZG9zLlxuICAgKiBAcGFyYW0gdGhlbWVQZXJDb21wb25lbnQgT3MgdG9rZW5zIGRlIGNvciBhIHNlcmVtIHVzYWRvcyBwYXJhIGdlcmFyIG9zIGVzdGlsb3MuXG4gICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gb3MgZXN0aWxvcyBDU1MgZ2VyYWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVQZXJDb21wb25lbnRTdHlsZXModGhlbWVQZXJDb21wb25lbnQ6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoZW1lUGVyQ29tcG9uZW50KVxuICAgICAgLmZsYXRNYXAoKFt0eXBlLCB2YWx1ZXNdKSA9PlxuICAgICAgICBPYmplY3QuZW50cmllcyh2YWx1ZXMpLmZsYXRNYXAoKFtsZXZlbCwgY29sb3JWYWx1ZV0pID0+IFtgJHt0eXBlfSB7JHtsZXZlbH06ICR7Y29sb3JWYWx1ZX07fTtgXSlcbiAgICAgIClcbiAgICAgIC5qb2luKCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbyB0ZW1hIGF0dWFsIGNvbW8gbyB0ZW1hIFwiUG9VSSBQYWRyw6NvXCIuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZVR5cGVFbnVtfSB0eXBlIE8gdGlwbyBkZSBUZW1hIGEgc2VyIGFwbGljYWRvLCBsaWdodCAvIGRhcmsuXG4gICAqL1xuICBzZXREZWZhdWx0VGhlbWUodHlwZTogUG9UaGVtZVR5cGVFbnVtKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaGVtZShwb1RoZW1lRGVmYXVsdCwgdHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIFJldG9ybmEgbyBlc3RpbG8gQ1NTIHBhcmEgbyBmdW5kbyBkb3Mgw61jb25lcyBkbyBjb21wb25lbnRlIHBvLXNlbGVjdCwgY29tIGJhc2UgbmFzIGNvcmVzIGRvIHRlbWEuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZUNvbG9yfSB0aGVtZUNvbG9yIC0gT2JqZXRvIGNvbnRlbmRvIGFzIGNvcmVzIGRvIHRlbWEuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gRXN0aWxvIENTUyBwYXJhIG8gZnVuZG8gZG9zIMOtY29uZXMgZG8gcG8tc2VsZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTZWxlY3RCZ0ljb25zU3R5bGUodGhlbWVDb2xvcjogUG9UaGVtZUNvbG9yKTogc3RyaW5nIHtcbiAgICBsZXQgc2VsZWN0QmdJY29uID0gJyc7XG5cbiAgICBpZiAodGhlbWVDb2xvcj8uYnJhbmQ/LlsnMDEnXT8uZGFyaykge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJyA/ICdwby1zZWxlY3QgLnBvLXNlbGVjdC1waG9zcGhvcicgOiAncG8tc2VsZWN0JztcbiAgICAgIHNlbGVjdEJnSWNvbiArPSBgJHtzZWxlY3Rvcn0geyAtLWJhY2tncm91bmQtaW1hZ2U6IHVybCgke3RoaXMuZ2V0U2VsZWN0QmdJY29uKHRoZW1lQ29sb3IuYnJhbmRbJzAxJ10uZGFyayl9KTsgfTtgO1xuICAgIH1cblxuICAgIGlmICh0aGVtZUNvbG9yPy5mZWVkYmFjaz8ubmVnYXRpdmU/LmJhc2UpIHtcbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUG9JY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdC5uZy1kaXJ0eS5uZy1pbnZhbGlkIHNlbGVjdCB7IC0tYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5mZWVkYmFjay5uZWdhdGl2ZS5iYXNlKX0pOyB9O2A7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdC5uZy1kaXJ0eS5uZy1pbnZhbGlkIHNlbGVjdC5wby1zZWxlY3QtcGhvc3Bob3IgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHt0aGlzLmdldFNlbGVjdEJnSWNvbih0aGVtZUNvbG9yLmZlZWRiYWNrLm5lZ2F0aXZlLmJhc2UpfSk7IH07YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhlbWVDb2xvcj8ubmV1dHJhbD8ubGlnaHQ/LlsnMzAnXSkge1xuICAgICAgaWYgKHRoaXMuaWNvbk5hbWVMaWIgPT09ICdQb0ljb24nKSB7XG4gICAgICAgIHNlbGVjdEJnSWNvbiArPSBgc2VsZWN0OmRpc2FibGVkIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5uZXV0cmFsLmxpZ2h0WyczMCddKX0pOyB9O2A7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdCBzZWxlY3QucG8tc2VsZWN0LXBob3NwaG9yOmRpc2FibGVkIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5uZXV0cmFsLmxpZ2h0WyczMCddKX0pOyB9O2A7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdEJnSWNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogUmV0b3JuYSBhIGltYWdlbSBTVkcgdXRpbGl6YWRhIGNvbW8gZnVuZG8gZG8gcG8tc2VsZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29sb3IgQ29yIGRhIEltYWdlbSAtIFV0aWxpemFkYSBubyBhdHJpYnV0byAnZmlsbCcuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEltYWdlbSBTVkcgdXRpbGl6YWRhIG5vIHBvLXNlbGVjdC5cbiAgICovXG4gIHByaXZhdGUgZ2V0U2VsZWN0QmdJY29uKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBzdmc6IHN0cmluZztcblxuICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUG9JY29uJykge1xuICAgICAgc3ZnID0gYFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgYDtcblxuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGApO1xuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgZD0nTTE4LjcwNyA4LjI5MzAxQzE4LjMxNiA3LjkwMjAxIDE3LjY4NCA3LjkwMjAxIDE3LjI5MyA4LjI5MzAxTDEyIDEzLjU4Nkw2LjcwNzAxIGApO1xuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgOC4yOTMwMUM2LjMxNjAxIDcuOTAyMDEgNS42ODQwMSA3LjkwMjAxIDUuMjkzMDEgOC4yOTMwMUM0LjkwMjAxIDguNjg0MDEgNC45MDIwMSBgKTtcbiAgICAgIHN2ZyA9IHN2Zy5jb25jYXQoYDkuMzE2MDEgNS4yOTMwMSA5LjcwNzAxTDExLjI5MyAxNS43MDdDMTEuNDg4IDE1LjkwMiAxMS43NDQgMTYgMTIgMTZDMTIuMjU2IDE2IDEyLjUxMiBgKTtcbiAgICAgIHN2ZyA9IHN2Zy5jb25jYXQoYDE1LjkwMiAxMi43MDcgMTUuNzA3TDE4LjcwNyA5LjcwNzAxQzE5LjA5OCA5LjMxNjAxIDE5LjA5OCA4LjY4NDAxIDE4LjcwNyA4LjI5MzAxWicgYCk7XG4gICAgICBzdmcgPSBzdmcuY29uY2F0KGBmaWxsPScke2NvbG9yLnJlcGxhY2UoJyMnLCAnJTIzJyl9Jy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO2ApO1xuXG4gICAgICByZXR1cm4gc3ZnO1xuICAgIH1cblxuICAgIHN2ZyA9IGBcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjU2IDI1NicgZmlsbD0nJHtjb2xvci5yZXBsYWNlKCcjJywgJyUyMycpfScgYDtcbiAgICBzdmcgPSBzdmcuY29uY2F0KGB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBgKTtcbiAgICBzdmcgPSBzdmcuY29uY2F0KFxuICAgICAgYGQ9J00yMTMuNjYsMTAxLjY2bC04MCw4MGE4LDgsMCwwLDEtMTEuMzIsMGwtODAtODBBOCw4LDAsMCwxLDUzLjY2LDkwLjM0TDEyOCwxNjQuNjlsNzQuMzQtNzQuMzVhOCw4LDAsMCwxLDExLjMyLDExLjMyWidgXG4gICAgKTtcbiAgICBzdmcgPSBzdmcuY29uY2F0KGAlM0UlM0MvcGF0aCUzRSUzQy9zdmclM0VcIik7YCk7XG5cbiAgICByZXR1cm4gc3ZnO1xuICB9XG59XG4iXX0=
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2VydmljZXMvcG8tdGhlbWUvcG8tdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSWxFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVwRjs7Ozs7Ozs7R0FRRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBVUc7SUFDQTtJQVZwQixRQUFRLENBQVk7SUFDcEIsS0FBSyxHQUFZLGNBQWMsQ0FBQztJQUNoQyxVQUFVLENBQTRCO0lBRTlDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQzRCLE1BQWMsRUFDZCxRQUFrQixFQUM1QyxlQUFpQyxFQUNLLEtBQWdDO1FBSDVDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSTVDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLElBQUksZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsUUFBUSxDQUFDLEtBQWMsRUFBRSxZQUE2QixlQUFlLENBQUMsS0FBSztRQUN6RSxvRkFBb0Y7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TUFBTTs7aUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVdJLE1BQU07dUJBQUMsUUFBUTs7c0JBQ2YsTUFBTTt1QkFBQyxRQUFROztzQkFFZixRQUFROztzQkFBSSxNQUFNO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb1RoZW1lVHlwZUVudW0gfSBmcm9tICcuL2VudW0vcG8tdGhlbWUtdHlwZS5lbnVtJztcbmltcG9ydCB7IHBvVGhlbWVEZWZhdWx0IH0gZnJvbSAnLi9oZWxwZXJzL3BvLXRoZW1lLXBvdWkuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9UaGVtZUNvbG9yIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRoZW1lLWNvbG9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RoZW1lVG9rZW5zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRoZW1lLXRva2Vucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UaGVtZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10aGVtZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUNPTlNfRElDVElPTkFSWSwgUG9JY29uRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcG8taWNvbi9pbmRleCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgUG9UaGVtZVNlcnZpY2VgIHBvc3NpYmlsaXRhIGEgcGVyc29uYWxpemHDp8OjbyBkYXMgY29yZXMgZG8gdGVtYSBwYWRyw6NvIGRvIGBQTy1VSWAsIHBlcm1pdGluZG8gYSBhbHRlcmHDp8OjbyBkb3MgdmFsb3JlcyBkYXMgdmFyacOhdmVpcyBkZSBlc3RpbG8gdXNhZGFzIG5vIENTUyBwYWRyw6NvLlxuICpcbiAqID4gUGFyYSBzYWJlciBtYWlzIHNvYnJlIGNvbW8gY3VzdG9taXphciBhcyBjb3JlcyBkbyB0ZW1hIHBhZHLDo28gdmVyaWZpcXVlIG8gaXRlbSBbQ3VzdG9taXphbmRvIGNvcmVzIGRvIHRlbWEgcGFkcsOjb10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvY29sb3JzLWN1c3RvbWl6YXRpb24pIG5hIGFiYSBgR3VpYXNgLlxuICpcbiAqID4gT2JzLjogTsOjbyBlc3TDoSBkb2N1bWVudGFkbyBhcXVpIGUgbsOjbyBpbmRpY2Ftb3MgYSBjdXN0b21pemHDp8OjbyBkYXMgY29yZXMgZGUgJ2ZlZWRiYWNrJyBwb3IgbW90aXZvcyBkZSBhY2Vzc2liaWxpZGFkZSBlIHVzYWJpbGlkYWRlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQb1RoZW1lU2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgcHJpdmF0ZSB0aGVtZTogUG9UaGVtZSA9IHBvVGhlbWVEZWZhdWx0O1xuICBwcml2YXRlIF9pY29uVG9rZW46IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgZ2V0IGljb25OYW1lTGliKCkge1xuICAgIHJldHVybiB0aGlzLl9pY29uVG9rZW4uTkFNRV9MSUI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdXaW5kb3cnKSBwcml2YXRlIHdpbmRvdzogV2luZG93LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElDT05TX0RJQ1RJT05BUlkpIHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICkge1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG5cbiAgICB0aGlzLl9pY29uVG9rZW4gPSB2YWx1ZSA/PyBQb0ljb25EaWN0aW9uYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBvIHRlbWEgYSBzZXIgYXBsaWNhZG8gbm8gY29tcG9uZW50ZSwgZGUgYWNvcmRvIGNvbSBvIHRpcG8gZGUgdGVtYSBlc3BlY2lmaWNhZG8uXG4gICAqXG4gICAqIEVzdGUgbcOpdG9kbyBkZWZpbmUgbyB0ZW1hIGEgc2VyIGFwbGljYWRvIG5vIGNvbXBvbmVudGUgY29tIGJhc2Ugbm8gb2JqZXRvIGB0aGVtZWAgZm9ybmVjaWRvIGUgbm8gdGlwbyBkZSB0ZW1hIGVzcGVjaWZpY2Fkby5cbiAgICogRWxlIGF0dWFsaXphIGFzIHByb3ByaWVkYWRlcyBkbyBjb21wb25lbnRlIHBhcmEgcmVmbGV0aXIgbyB0ZW1hIHNlbGVjaW9uYWRvLCBjb21vIGNvcmVzLCBlc3RpbG9zIGUgY29tcG9ydGFtZW50b3MuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZX0gdGhlbWUgLSBPYmpldG8gY29udGVuZG8gYXMgZGVmaW5pw6fDtWVzIGRlIHRlbWEgYSBzZXJlbSBhcGxpY2FkYXMgbm8gY29tcG9uZW50ZS5cbiAgICogQHBhcmFtIHtQb1RoZW1lVHlwZUVudW19IFt0aGVtZVR5cGU9UG9UaGVtZVR5cGVFbnVtLmxpZ2h0XSAtIChPcGNpb25hbCkgVGlwbyBkZSB0ZW1hIGEgc2VyIGFwbGljYWRvLCBwb2RlbmRvIHNlciAnbGlnaHQnIChjbGFybykgb3UgJ2RhcmsnIChlc2N1cm8pLiBQb3IgcGFkcsOjbywgbyB0ZW1hIGNsYXJvIMOpIGFwbGljYWRvLlxuICAgKi9cbiAgc2V0VGhlbWUodGhlbWU6IFBvVGhlbWUsIHRoZW1lVHlwZTogUG9UaGVtZVR5cGVFbnVtID0gUG9UaGVtZVR5cGVFbnVtLmxpZ2h0KTogdm9pZCB7XG4gICAgLy8gQ2hhbmdlIHRoZW1lIG5hbWUsIHJlbW92ZSBzcGVjaWFsIGNoYXJhY3RlcmVzIGFuZCBudW1iZXIsIHJlcGxhY2Ugc3BhY2Ugd2l0aCBkYXNoXG4gICAgdGhlbWUubmFtZSA9IHRoZW1lLm5hbWVcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVogXS9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXHMrL2csICctJyk7XG4gICAgdGhlbWUuYWN0aXZlID0gdGhlbWVUeXBlO1xuXG4gICAgY29uc3QgX3RoZW1lVHlwZSA9IHRoZW1lLnR5cGVbUG9UaGVtZVR5cGVFbnVtW3RoZW1lVHlwZV1dO1xuICAgIGlmICghX3RoZW1lVHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbG9yU3R5bGVzID0gX3RoZW1lVHlwZS5jb2xvciA/IHRoaXMuZ2VuZXJhdGVUaGVtZVN0eWxlcyhfdGhlbWVUeXBlLmNvbG9yKSA6ICcnO1xuICAgIGNvbnN0IHBlckNvbXBvbmVudFN0eWxlcyA9IF90aGVtZVR5cGUucGVyQ29tcG9uZW50ID8gdGhpcy5nZW5lcmF0ZVBlckNvbXBvbmVudFN0eWxlcyhfdGhlbWVUeXBlLnBlckNvbXBvbmVudCkgOiAnJztcbiAgICBjb25zdCBvblJvb3RTdHlsZXMgPSBfdGhlbWVUeXBlLm9uUm9vdCA/IHRoaXMuZ2VuZXJhdGVBZGRpdGlvbmFsU3R5bGVzKF90aGVtZVR5cGUub25Sb290KSA6ICcnO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxTdHlsZXMgPSB0aGlzLmdlbmVyYXRlQWRkaXRpb25hbFN0eWxlcyhfdGhlbWVUeXBlKTtcblxuICAgIGNvbnN0IGNvbWJpbmVkU3R5bGVzID0gYFxuICAgICAgLiR7dGhlbWUubmFtZX0tJHtQb1RoZW1lVHlwZUVudW1bdGhlbWVUeXBlXX06cm9vdCB7XG4gICAgICAgICR7Y29sb3JTdHlsZXN9XG4gICAgICAgICR7cGVyQ29tcG9uZW50U3R5bGVzfVxuICAgICAgICAke29uUm9vdFN0eWxlc31cbiAgICAgICAgJHthZGRpdGlvbmFsU3R5bGVzfVxuICAgICAgfWA7XG5cbiAgICB0aGlzLmFwcGx5VGhlbWVTdHlsZXMoY29tYmluZWRTdHlsZXMpO1xuICAgIHRoaXMuY2hhbmdlVGhlbWVUeXBlKHRoZW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogR2VyYSBlc3RpbG9zIGFkaWNpb25haXMgY29tIGJhc2Ugbm9zIHRva2VucyBkZSB0ZW1hIGZvcm5lY2lkb3MsIGV4Y2x1aW5kbyBvcyB0b2tlbnMgZGUgY29yLlxuICAgKiBAcGFyYW0gdGhlbWUgT3MgdG9rZW5zIGRlIHRlbWEgY29udGVuZG8gb3MgZXN0aWxvcyBhZGljaW9uYWlzIGEgc2VyZW0gZ2VyYWRvcy5cbiAgICogQHJldHVybnMgVW1hIHN0cmluZyBjb250ZW5kbyBvcyBlc3RpbG9zIGFkaWNpb25haXMgZm9ybWF0YWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVBZGRpdGlvbmFsU3R5bGVzKHRoZW1lOiBQb1RoZW1lVG9rZW5zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhlbWUpXG4gICAgICAuZmlsdGVyKChba2V5XSkgPT4gIVsnY29sb3InLCAncGVyQ29tcG9uZW50JywgJ29uUm9vdCddLmluY2x1ZGVzKGtleSkpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX06ICR7dmFsdWV9O2ApXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBBcGxpY2Egb3MgZXN0aWxvcyBkZSB0ZW1hIGFvIGRvY3VtZW50by5cbiAgICogQHBhcmFtIHN0eWxlQ3NzIE9zIGVzdGlsb3MgQ1NTIGEgc2VyZW0gYXBsaWNhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseVRoZW1lU3R5bGVzKHN0eWxlQ3NzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLmNyZWF0ZVN0eWxlRWxlbWVudChzdHlsZUNzcyk7XG4gICAgY29uc3QgZXhpc3RpbmdTdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJyNwb3VpVGhlbWUnKTtcblxuICAgIGlmIChleGlzdGluZ1N0eWxlRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5oZWFkLCBleGlzdGluZ1N0eWxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5oZWFkLCBzdHlsZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VUaGVtZVR5cGUodGhlbWU6IFBvVGhlbWUpIHtcbiAgICB0aGlzLmNsZWFuVGhlbWVBY3RpdmUoKTtcbiAgICB0aGlzLnNldFRoZW1lQWN0aXZlKHRoZW1lKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaHRtbCcpWzBdLmNsYXNzTGlzdC5hZGQoLi4uW2Ake3RoZW1lLm5hbWV9LSR7UG9UaGVtZVR5cGVFbnVtW3RoZW1lLmFjdGl2ZV19YF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNpc3RlIGUgZGVmaW5lIG8gdGVtYSBkbyBhcGxpY2F0aXZvIGNvbSBiYXNlIG5vcyBkYWRvcyBhcm1hemVuYWRvcy5cbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIHJlY3VwZXJhIG9zIGRhZG9zIGRvIHRlbWEgYXJtYXplbmFkb3MgZSBvcyBhcGxpY2EgYW8gYXBsaWNhdGl2by5cbiAgICpcbiAgICogQHJldHVybnMge1BvVGhlbWV9IFJlY3VwZXJhIG8gdGVtYSBhcm1hemVuYWRvLlxuICAgKi9cbiAgcGVyc2lzdFRoZW1lQWN0aXZlKCkge1xuICAgIGNvbnN0IF90aGVtZSA9IHRoaXMuZ2V0VGhlbWVBY3RpdmUoKTtcbiAgICB0aGlzLnNldFRoZW1lKF90aGVtZSwgX3RoZW1lLmFjdGl2ZSk7XG4gICAgcmV0dXJuIF90aGVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbHRlcmEgbyB0aXBvIGRvIHRlbWEgYXJtYXplbmFkbyBlIGFwbGljYSBvcyBub3ZvcyBlc3RpbG9zIGFvIGRvY3VtZW50by5cbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIGFsdGVyYSBvIHRpcG8gZG8gdGVtYSBhcm1hemVuYWRvIGF0aXZvIChsaWdodC9kYXJrKVxuICAgKlxuICAgKiBAcGFyYW0ge1BvVGhlbWVUeXBlRW51bX0gdGhlbWVUeXBlIE8gdGlwbyBkZSB0ZW1hIGEgc2VyIGFwbGljYWRvLCBsaWdodCBvdSBkYXJrLlxuICAgKi9cbiAgY2hhbmdlQ3VycmVudFRoZW1lVHlwZSh0eXBlOiBQb1RoZW1lVHlwZUVudW0pOiB2b2lkIHtcbiAgICBjb25zdCBfdGhlbWUgPSB0aGlzLmdldFRoZW1lQWN0aXZlKCk7XG4gICAgX3RoZW1lLmFjdGl2ZSA9IHR5cGU7XG4gICAgdGhpcy5jaGFuZ2VUaGVtZVR5cGUoX3RoZW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNw6l0b2RvIHJlbW92ZSBvIHRlbWEgYXJtYXplbmFkbyBlIGxpbXBhIHRvZG9zIG9zIGVzdGlsb3MgZGUgdGVtYVxuICAgKiBhcGxpY2Fkb3MgYW8gZG9jdW1lbnRvLlxuICAgKi9cbiAgY2xlYW5UaGVtZUFjdGl2ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBfdGhlbWUgPSB0aGlzLmdldFRoZW1lQWN0aXZlKCk7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2h0bWwnKVswXS5jbGFzc0xpc3QucmVtb3ZlKGAke190aGVtZS5uYW1lfS0ke1BvVGhlbWVUeXBlRW51bVtfdGhlbWUuYWN0aXZlXX1gKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG90dnMtdGhlbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIGRlZmluZSB1bSBkYWRvcyBkbyB0ZW1hIGUgbyBhcm1hemVuYS5cbiAgICogQHBhcmFtIHRoZW1lIE9zIHRva2VucyBkZSB0ZW1hIGNvbnRlbmRvIG9zIGVzdGlsb3MgYWRpY2lvbmFpcyBhIHNlcmVtIGdlcmFkb3MuXG4gICAqL1xuICBwcml2YXRlIHNldFRoZW1lQWN0aXZlKHRoZW1lOiBQb1RoZW1lKTogdm9pZCB7XG4gICAgaWYgKHRoZW1lKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG90dnMtdGhlbWUnLCBKU09OLnN0cmluZ2lmeSh0aGVtZSkpO1xuICAgICAgdGhpcy50aGVtZSA9IHRoZW1lO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRvcm5hIG8gdGVtYSBhdGl2byBjb21vIHVtIG9ic2VydmFibGUuXG4gICAqIEByZXR1cm5zIHtQb1RoZW1lfSBUZW1hIGF0aXZvLlxuICAgKi9cbiAgZ2V0VGhlbWVBY3RpdmUoKTogUG9UaGVtZSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRoZW1lRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RvdHZzLXRoZW1lJykpO1xuICAgICAgaWYgKHRoZW1lRGF0YSAmJiBKU09OLnN0cmluZ2lmeSh0aGVtZURhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnRoZW1lKSkge1xuICAgICAgICB0aGlzLnRoZW1lID0gdGhlbWVEYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvIGFvIG9idGVyIG8gdGVtYSBkbyBhcm1hemVuYW1lbnRvIGxvY2FsOicsIGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudGhlbWU7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIEdlcmEgZXN0aWxvcyBDU1MgY29tIGJhc2Ugbm9zIHRva2VucyBkZSBjb3JlcyBmb3JuZWNpZG9zLlxuICAgKiBAcGFyYW0gdGhlbWVDb2xvciBPcyB0b2tlbnMgZGUgY29yIGEgc2VyZW0gdXNhZG9zIHBhcmEgZ2VyYXIgb3MgZXN0aWxvcy5cbiAgICogQHJldHVybnMgVW1hIHN0cmluZyBjb250ZW5kbyBvcyBlc3RpbG9zIENTUyBnZXJhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVTdHlsZUVsZW1lbnQoY3NzOiBzdHJpbmcpOiBIVE1MU3R5bGVFbGVtZW50IHtcbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGVFbGVtZW50LmlkID0gJ3BvdWlUaGVtZSc7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChjc3MpKTtcbiAgICByZXR1cm4gc3R5bGVFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBHZXJhIGVzdGlsb3MgQ1NTIGNvbSBiYXNlIG5vcyB0b2tlbnMgZGUgY29yZXMgZm9ybmVjaWRvcy5cbiAgICogQHBhcmFtIHRoZW1lQ29sb3IgT3MgdG9rZW5zIGRlIGNvciBhIHNlcmVtIHVzYWRvcyBwYXJhIGdlcmFyIG9zIGVzdGlsb3MuXG4gICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gb3MgZXN0aWxvcyBDU1MgZ2VyYWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVUaGVtZVN0eWxlcyh0aGVtZUNvbG9yOiBQb1RoZW1lQ29sb3IpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdEJnSWNvblN0eWxlID0gdGhpcy5nZXRTZWxlY3RCZ0ljb25zU3R5bGUodGhlbWVDb2xvcik7XG5cbiAgICByZXR1cm4gW1xuICAgICAgT2JqZWN0LmVudHJpZXModGhlbWVDb2xvcilcbiAgICAgICAgLmZsYXRNYXAoKFt0eXBlLCB2YWx1ZXNdKSA9PlxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlcykuZmxhdE1hcCgoW3RvbmFsaXR5LCB0b25hbGl0eVZhbHVlc10pID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnYWN0aW9uJykge1xuICAgICAgICAgICAgICByZXR1cm4gW2AtLWNvbG9yLSR7dHlwZX0tJHt0b25hbGl0eX06ICR7dG9uYWxpdHlWYWx1ZXN9O2BdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRvbmFsaXR5VmFsdWVzKS5tYXAoXG4gICAgICAgICAgICAgICAgKFtsZXZlbCwgY29sb3JWYWx1ZV0pID0+IGAtLWNvbG9yLSR7dHlwZX0tJHt0b25hbGl0eX0tJHtsZXZlbH06ICR7Y29sb3JWYWx1ZX07YFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJycpLFxuICAgICAgc2VsZWN0QmdJY29uU3R5bGVcbiAgICBdLmpvaW4oJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBHZXJhIGVzdGlsb3MgQ1NTIGNvbSBiYXNlIG5vcyB0b2tlbnMgcGVyIENvbXBvbmVudCBmb3JuZWNpZG9zLlxuICAgKiBAcGFyYW0gdGhlbWVQZXJDb21wb25lbnQgT3MgdG9rZW5zIGRlIGNvciBhIHNlcmVtIHVzYWRvcyBwYXJhIGdlcmFyIG9zIGVzdGlsb3MuXG4gICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gb3MgZXN0aWxvcyBDU1MgZ2VyYWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVQZXJDb21wb25lbnRTdHlsZXModGhlbWVQZXJDb21wb25lbnQ6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoZW1lUGVyQ29tcG9uZW50KVxuICAgICAgLmZsYXRNYXAoKFt0eXBlLCB2YWx1ZXNdKSA9PlxuICAgICAgICBPYmplY3QuZW50cmllcyh2YWx1ZXMpLmZsYXRNYXAoKFtsZXZlbCwgY29sb3JWYWx1ZV0pID0+IFtgJHt0eXBlfSB7JHtsZXZlbH06ICR7Y29sb3JWYWx1ZX07fTtgXSlcbiAgICAgIClcbiAgICAgIC5qb2luKCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbyB0ZW1hIGF0dWFsIGNvbW8gbyB0ZW1hIFwiUG9VSSBQYWRyw6NvXCIuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZVR5cGVFbnVtfSB0eXBlIE8gdGlwbyBkZSBUZW1hIGEgc2VyIGFwbGljYWRvLCBsaWdodCAvIGRhcmsuXG4gICAqL1xuICBzZXREZWZhdWx0VGhlbWUodHlwZTogUG9UaGVtZVR5cGVFbnVtKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaGVtZShwb1RoZW1lRGVmYXVsdCwgdHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIFJldG9ybmEgbyBlc3RpbG8gQ1NTIHBhcmEgbyBmdW5kbyBkb3Mgw61jb25lcyBkbyBjb21wb25lbnRlIHBvLXNlbGVjdCwgY29tIGJhc2UgbmFzIGNvcmVzIGRvIHRlbWEuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZUNvbG9yfSB0aGVtZUNvbG9yIC0gT2JqZXRvIGNvbnRlbmRvIGFzIGNvcmVzIGRvIHRlbWEuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gRXN0aWxvIENTUyBwYXJhIG8gZnVuZG8gZG9zIMOtY29uZXMgZG8gcG8tc2VsZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTZWxlY3RCZ0ljb25zU3R5bGUodGhlbWVDb2xvcjogUG9UaGVtZUNvbG9yKTogc3RyaW5nIHtcbiAgICBsZXQgc2VsZWN0QmdJY29uID0gJyc7XG5cbiAgICBpZiAodGhlbWVDb2xvcj8uYnJhbmQ/LlsnMDEnXT8uZGFyaykge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJyA/ICdwby1zZWxlY3QgLnBvLXNlbGVjdC1waG9zcGhvcicgOiAncG8tc2VsZWN0JztcbiAgICAgIHNlbGVjdEJnSWNvbiArPSBgJHtzZWxlY3Rvcn0geyAtLWJhY2tncm91bmQtaW1hZ2U6IHVybCgke3RoaXMuZ2V0U2VsZWN0QmdJY29uKHRoZW1lQ29sb3IubmV1dHJhbC5kYXJrWzcwXSl9KTsgfTtgO1xuICAgIH1cblxuICAgIGlmICh0aGVtZUNvbG9yPy5mZWVkYmFjaz8ubmVnYXRpdmU/LmJhc2UpIHtcbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUG9JY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdC5uZy1kaXJ0eS5uZy1pbnZhbGlkIHNlbGVjdCB7IC0tYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5mZWVkYmFjay5uZWdhdGl2ZS5iYXNlKX0pOyB9O2A7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdC5uZy1kaXJ0eS5uZy1pbnZhbGlkIHNlbGVjdC5wby1zZWxlY3QtcGhvc3Bob3IgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHt0aGlzLmdldFNlbGVjdEJnSWNvbih0aGVtZUNvbG9yLmZlZWRiYWNrLm5lZ2F0aXZlLmJhc2UpfSk7IH07YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhlbWVDb2xvcj8ubmV1dHJhbD8ubGlnaHQ/LlsnMzAnXSkge1xuICAgICAgaWYgKHRoaXMuaWNvbk5hbWVMaWIgPT09ICdQb0ljb24nKSB7XG4gICAgICAgIHNlbGVjdEJnSWNvbiArPSBgc2VsZWN0OmRpc2FibGVkIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5uZXV0cmFsLmxpZ2h0WyczMCddKX0pOyB9O2A7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdCBzZWxlY3QucG8tc2VsZWN0LXBob3NwaG9yOmRpc2FibGVkIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5uZXV0cmFsLmxpZ2h0WyczMCddKX0pOyB9O2A7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdEJnSWNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogUmV0b3JuYSBhIGltYWdlbSBTVkcgdXRpbGl6YWRhIGNvbW8gZnVuZG8gZG8gcG8tc2VsZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29sb3IgQ29yIGRhIEltYWdlbSAtIFV0aWxpemFkYSBubyBhdHJpYnV0byAnZmlsbCcuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEltYWdlbSBTVkcgdXRpbGl6YWRhIG5vIHBvLXNlbGVjdC5cbiAgICovXG4gIHByaXZhdGUgZ2V0U2VsZWN0QmdJY29uKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBzdmc6IHN0cmluZztcblxuICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUG9JY29uJykge1xuICAgICAgc3ZnID0gYFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgYDtcblxuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGApO1xuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgZD0nTTE4LjcwNyA4LjI5MzAxQzE4LjMxNiA3LjkwMjAxIDE3LjY4NCA3LjkwMjAxIDE3LjI5MyA4LjI5MzAxTDEyIDEzLjU4Nkw2LjcwNzAxIGApO1xuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgOC4yOTMwMUM2LjMxNjAxIDcuOTAyMDEgNS42ODQwMSA3LjkwMjAxIDUuMjkzMDEgOC4yOTMwMUM0LjkwMjAxIDguNjg0MDEgNC45MDIwMSBgKTtcbiAgICAgIHN2ZyA9IHN2Zy5jb25jYXQoYDkuMzE2MDEgNS4yOTMwMSA5LjcwNzAxTDExLjI5MyAxNS43MDdDMTEuNDg4IDE1LjkwMiAxMS43NDQgMTYgMTIgMTZDMTIuMjU2IDE2IDEyLjUxMiBgKTtcbiAgICAgIHN2ZyA9IHN2Zy5jb25jYXQoYDE1LjkwMiAxMi43MDcgMTUuNzA3TDE4LjcwNyA5LjcwNzAxQzE5LjA5OCA5LjMxNjAxIDE5LjA5OCA4LjY4NDAxIDE4LjcwNyA4LjI5MzAxWicgYCk7XG4gICAgICBzdmcgPSBzdmcuY29uY2F0KGBmaWxsPScke2NvbG9yLnJlcGxhY2UoJyMnLCAnJTIzJyl9Jy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO2ApO1xuXG4gICAgICByZXR1cm4gc3ZnO1xuICAgIH1cblxuICAgIHN2ZyA9IGBcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjU2IDI1NicgZmlsbD0nJHtjb2xvci5yZXBsYWNlKCcjJywgJyUyMycpfScgYDtcbiAgICBzdmcgPSBzdmcuY29uY2F0KGB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBgKTtcbiAgICBzdmcgPSBzdmcuY29uY2F0KFxuICAgICAgYGQ9J00yMTMuNjYsMTAxLjY2bC04MCw4MGE4LDgsMCwwLDEtMTEuMzIsMGwtODAtODBBOCw4LDAsMCwxLDUzLjY2LDkwLjM0TDEyOCwxNjQuNjlsNzQuMzQtNzQuMzVhOCw4LDAsMCwxLDExLjMyLDExLjMyWidgXG4gICAgKTtcbiAgICBzdmcgPSBzdmcuY29uY2F0KGAlM0UlM0MvcGF0aCUzRSUzQy9zdmclM0VcIik7YCk7XG5cbiAgICByZXR1cm4gc3ZnO1xuICB9XG59XG4iXX0=
@@ -3651,6 +3651,18 @@ class PoAccordionComponent extends PoAccordionBaseComponent {
3651
3651
  * })
3652
3652
  * export class AppModule { }
3653
3653
  * ```
3654
+ *
3655
+ * Em aplicações Standalone, utilize a seguinte configuração para o bootstrap:
3656
+ *
3657
+ * ```
3658
+ * import { bootstrapApplication } from '@angular/platform-browser';
3659
+ * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
3660
+ * import { AppComponent } from './app.component';
3661
+ *
3662
+ * bootstrapApplication(AppComponent, {
3663
+ * providers: [importProvidersFrom(BrowserAnimationsModule)]
3664
+ * }).catch(err => console.error(err));
3665
+ * ```
3654
3666
  */
3655
3667
  class PoAccordionModule {
3656
3668
  static ɵfac = function PoAccordionModule_Factory(t) { return new (t || PoAccordionModule)(); };
@@ -12725,7 +12737,8 @@ class PoChartComponent extends PoChartBaseComponent {
12725
12737
  const labelPoChartPadding = PoChartPadding / 3;
12726
12738
  const spanElement = this.renderer.createElement('span');
12727
12739
  this.renderer.addClass(spanElement, 'po-chart-axis-x-label');
12728
- spanElement.innerHTML = axisXLabel;
12740
+ const formattedLabel = typeof axisXLabel === 'number' ? axisXLabel.toFixed(2) : axisXLabel;
12741
+ spanElement.innerHTML = formattedLabel;
12729
12742
  this.renderer.appendChild(this.elementRef.nativeElement, spanElement);
12730
12743
  const axisXLabelWidth = Math.ceil(spanElement.offsetWidth) + labelPoChartPadding;
12731
12744
  this.renderer.removeChild(this.elementRef.nativeElement, spanElement);
@@ -19492,7 +19505,7 @@ class PoThemeService {
19492
19505
  let selectBgIcon = '';
19493
19506
  if (themeColor?.brand?.['01']?.dark) {
19494
19507
  const selector = this.iconNameLib === 'PhosphorIcon' ? 'po-select .po-select-phosphor' : 'po-select';
19495
- selectBgIcon += `${selector} { --background-image: url(${this.getSelectBgIcon(themeColor.brand['01'].dark)}); };`;
19508
+ selectBgIcon += `${selector} { --background-image: url(${this.getSelectBgIcon(themeColor.neutral.dark[70])}); };`;
19496
19509
  }
19497
19510
  if (themeColor?.feedback?.negative?.base) {
19498
19511
  if (this.iconNameLib === 'PoIcon') {
@@ -20105,6 +20118,41 @@ class PoTimeModule {
20105
20118
  * > Para o correto funcionamento do componente `po-page-slide`, deve ser
20106
20119
  * > importado o módulo `BrowserAnimationsModule` no módulo principal da sua
20107
20120
  * > aplicação.
20121
+ *
20122
+ * Módulo da aplicação:
20123
+ * ```
20124
+ * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
20125
+ * import { PoModule } from '@po-ui/ng-components';
20126
+ * ...
20127
+ *
20128
+ * @NgModule({
20129
+ * imports: [
20130
+ * BrowserModule,
20131
+ * BrowserAnimationsModule,
20132
+ * ...
20133
+ * PoModule
20134
+ * ],
20135
+ * declarations: [
20136
+ * AppComponent,
20137
+ * ...
20138
+ * ],
20139
+ * providers: [],
20140
+ * bootstrap: [AppComponent]
20141
+ * })
20142
+ * export class AppModule { }
20143
+ * ```
20144
+ *
20145
+ * Em aplicações Standalone, utilize a seguinte configuração para o bootstrap:
20146
+ *
20147
+ * ```
20148
+ * import { bootstrapApplication } from '@angular/platform-browser';
20149
+ * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
20150
+ * import { AppComponent } from './app.component';
20151
+ *
20152
+ * bootstrapApplication(AppComponent, {
20153
+ * providers: [importProvidersFrom(BrowserAnimationsModule)]
20154
+ * }).catch(err => console.error(err));
20155
+ * ```
20108
20156
  */
20109
20157
  class PoPageSlideBaseComponent {
20110
20158
  /**
@@ -32205,7 +32253,7 @@ class PoDynamicFormBaseComponent {
32205
32253
  * o `po-textarea`, caso o valor da propriedade `rows` seja menor que 3 o componente criado será o `po-input`.
32206
32254
  * - Caso seja informada a propriedade `secret` o componente criado será o `po-password`.
32207
32255
  * - Caso o *type* informado seja *string* o componente criado será o `po-input`.
32208
- * > Ao alterar o valor das `properties` e/ou agrupamentos via container, os `fields` que utilizam serviço podem refazer as chamadas para as API's.
32256
+ * > Ao alterar o valor das `properties`, visibilidade e/ou agrupamentos via container, os `fields` que utilizam serviço podem refazer as chamadas para as API's.
32209
32257
  * @default `[]`
32210
32258
  */
32211
32259
  fields;
@@ -43222,18 +43270,24 @@ class PoDynamicFormFieldsComponent extends PoDynamicFormFieldsBaseComponent {
43222
43270
  container: item.container || null,
43223
43271
  property: item.property,
43224
43272
  index,
43225
- order: item.order
43273
+ order: item.order,
43274
+ visible: item.visible ?? true
43226
43275
  }));
43227
43276
  const currArray = current.map((item, index) => ({
43228
43277
  container: item.container || null,
43229
43278
  property: item.property,
43230
43279
  index,
43231
- order: item.order
43280
+ order: item.order,
43281
+ visible: item.visible ?? true
43232
43282
  }));
43233
43283
  const prevContainers = prevArray.filter(item => item.container);
43234
43284
  const currContainers = currArray.filter(item => item.container);
43235
43285
  const prevOrder = prevArray.filter(item => item.order);
43236
43286
  const currOrder = currArray.filter(item => item.order);
43287
+ const prevVisibleTrue = prevArray.filter(item => item.visible === true);
43288
+ const currVisibleTrue = currArray.filter(item => item.visible === true);
43289
+ const prevVisibleFalse = prevArray.filter(item => !item.visible);
43290
+ const currVisibleFalse = currArray.filter(item => !item.visible);
43237
43291
  // Verifica mudança na quantidade de containers
43238
43292
  if (prevContainers.length !== currContainers.length) {
43239
43293
  this.setContainerFields();
@@ -43244,12 +43298,28 @@ class PoDynamicFormFieldsComponent extends PoDynamicFormFieldsBaseComponent {
43244
43298
  this.setContainerFields();
43245
43299
  return;
43246
43300
  }
43301
+ // Verifica mudança na quantidade de visible
43302
+ if (prevVisibleTrue.length !== currVisibleTrue.length) {
43303
+ this.setContainerFields();
43304
+ return;
43305
+ }
43306
+ // Verifica mudança na quantidade de visible
43307
+ if (prevVisibleFalse.length !== currVisibleFalse.length) {
43308
+ this.setContainerFields();
43309
+ return;
43310
+ }
43247
43311
  if (currContainers.length) {
43248
43312
  this.handleChangesContainer(prevContainers, currContainers, 'container');
43249
43313
  }
43250
43314
  if (currOrder.length) {
43251
43315
  this.handleChangesContainer(prevOrder, currOrder, 'order');
43252
43316
  }
43317
+ if (currVisibleTrue.length) {
43318
+ this.handleChangesContainer(prevVisibleTrue, currVisibleTrue, 'visible');
43319
+ }
43320
+ if (currVisibleFalse.length) {
43321
+ this.handleChangesContainer(prevVisibleFalse, currVisibleFalse, 'visible');
43322
+ }
43253
43323
  //atualiza container sem mudança na estrutura da interface
43254
43324
  const result = this.diffObjectsArray(previous, this.getVisibleFields());
43255
43325
  this.containerFields = this.updateFieldContainer(result, this.containerFields);
@@ -46831,6 +46901,18 @@ class PoListViewComponent extends PoListViewBaseComponent {
46831
46901
  * })
46832
46902
  * export class AppModule { }
46833
46903
  * ```
46904
+ *
46905
+ * Em aplicações Standalone, utilize a seguinte configuração para o bootstrap:
46906
+ *
46907
+ * ```
46908
+ * import { bootstrapApplication } from '@angular/platform-browser';
46909
+ * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
46910
+ * import { AppComponent } from './app.component';
46911
+ *
46912
+ * bootstrapApplication(AppComponent, {
46913
+ * providers: [importProvidersFrom(BrowserAnimationsModule)]
46914
+ * }).catch(err => console.error(err));
46915
+ * ```
46834
46916
  */
46835
46917
  class PoListViewModule {
46836
46918
  static ɵfac = function PoListViewModule_Factory(t) { return new (t || PoListViewModule)(); };
@@ -50026,6 +50108,18 @@ class PoNavbarComponent extends PoNavbarBaseComponent {
50026
50108
  * })
50027
50109
  * export class AppModule { }
50028
50110
  * ```
50111
+ *
50112
+ * Em aplicações Standalone, utilize a seguinte configuração para o bootstrap:
50113
+ *
50114
+ * ```
50115
+ * import { bootstrapApplication } from '@angular/platform-browser';
50116
+ * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
50117
+ * import { AppComponent } from './app.component';
50118
+ *
50119
+ * bootstrapApplication(AppComponent, {
50120
+ * providers: [importProvidersFrom(BrowserAnimationsModule)]
50121
+ * }).catch(err => console.error(err));
50122
+ * ```
50029
50123
  */
50030
50124
  class PoNavbarModule {
50031
50125
  static ɵfac = function PoNavbarModule_Factory(t) { return new (t || PoNavbarModule)(); };
@@ -52521,6 +52615,18 @@ class PoSlideComponent extends PoSlideBaseComponent {
52521
52615
  * })
52522
52616
  * export class AppModule { }
52523
52617
  * ```
52618
+ *
52619
+ * Em aplicações Standalone, utilize a seguinte configuração para o bootstrap:
52620
+ *
52621
+ * ```
52622
+ * import { bootstrapApplication } from '@angular/platform-browser';
52623
+ * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
52624
+ * import { AppComponent } from './app.component';
52625
+ *
52626
+ * bootstrapApplication(AppComponent, {
52627
+ * providers: [importProvidersFrom(BrowserAnimationsModule)]
52628
+ * }).catch(err => console.error(err));
52629
+ * ```
52524
52630
  */
52525
52631
  class PoSlideModule {
52526
52632
  static ɵfac = function PoSlideModule_Factory(t) { return new (t || PoSlideModule)(); };
@@ -55446,6 +55552,18 @@ class PoTreeViewComponent extends PoTreeViewBaseComponent {
55446
55552
  * })
55447
55553
  * export class AppModule { }
55448
55554
  * ```
55555
+ *
55556
+ * Em aplicações Standalone, utilize a seguinte configuração para o bootstrap:
55557
+ *
55558
+ * ```
55559
+ * import { bootstrapApplication } from '@angular/platform-browser';
55560
+ * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
55561
+ * import { AppComponent } from './app.component';
55562
+ *
55563
+ * bootstrapApplication(AppComponent, {
55564
+ * providers: [importProvidersFrom(BrowserAnimationsModule)]
55565
+ * }).catch(err => console.error(err));
55566
+ * ```
55449
55567
  */
55450
55568
  class PoTreeViewModule {
55451
55569
  static ɵfac = function PoTreeViewModule_Factory(t) { return new (t || PoTreeViewModule)(); };