@taiga-ui/addon-doc 2.43.0 → 2.46.0

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 (38) hide show
  1. package/bundles/taiga-ui-addon-doc.umd.js +22 -8
  2. package/bundles/taiga-ui-addon-doc.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-doc.umd.min.js +1 -1
  4. package/bundles/taiga-ui-addon-doc.umd.min.js.map +1 -1
  5. package/components/demo/demo.component.d.ts +2 -2
  6. package/components/documentation/documentation-property-connector.directive.d.ts +2 -2
  7. package/components/page/page-tab.directive.d.ts +2 -2
  8. package/esm2015/components/code/code.component.js +1 -1
  9. package/esm2015/components/copy/copy.component.js +1 -1
  10. package/esm2015/components/demo/demo.component.js +2 -2
  11. package/esm2015/components/documentation/documentation-property-connector.directive.js +1 -1
  12. package/esm2015/components/documentation/documentation.component.js +2 -2
  13. package/esm2015/components/example/example.component.js +3 -3
  14. package/esm2015/components/main/main.component.js +2 -2
  15. package/esm2015/components/navigation/navigation.component.js +1 -1
  16. package/esm2015/components/page/page-tab.directive.js +1 -1
  17. package/esm2015/internal/header/header.component.js +1 -1
  18. package/esm2015/languages/russian.js +2 -2
  19. package/esm2015/utils/coerce-value.js +16 -2
  20. package/esm5/components/code/code.component.js +1 -1
  21. package/esm5/components/copy/copy.component.js +1 -1
  22. package/esm5/components/demo/demo.component.js +2 -2
  23. package/esm5/components/documentation/documentation-property-connector.directive.js +1 -1
  24. package/esm5/components/documentation/documentation.component.js +2 -2
  25. package/esm5/components/example/example.component.js +3 -3
  26. package/esm5/components/main/main.component.js +2 -2
  27. package/esm5/components/navigation/navigation.component.js +1 -1
  28. package/esm5/components/page/page-tab.directive.js +1 -1
  29. package/esm5/internal/header/header.component.js +1 -1
  30. package/esm5/languages/russian.js +2 -2
  31. package/esm5/utils/coerce-value.js +16 -2
  32. package/fesm2015/taiga-ui-addon-doc.js +22 -8
  33. package/fesm2015/taiga-ui-addon-doc.js.map +1 -1
  34. package/fesm5/taiga-ui-addon-doc.js +22 -8
  35. package/fesm5/taiga-ui-addon-doc.js.map +1 -1
  36. package/package.json +5 -5
  37. package/taiga-ui-addon-doc.metadata.json +1 -1
  38. package/utils/coerce-value.d.ts +1 -1
@@ -57,7 +57,7 @@ TuiDocCodeComponent = __decorate([
57
57
  Component({
58
58
  selector: 'tui-doc-code',
59
59
  template: "<p\n *ngIf=\"filename\"\n class=\"t-header\"\n>\n {{filename}}\n</p>\n<pre\n *ngFor=\"let content of processor$ | async\"\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"content\"></code></pre>\n",
60
- styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.t-code{margin:0}.t-code+.t-code{margin-top:1rem}.hljs:not(:empty){font:var(--tui-font-text-m);padding:1.5rem 2rem;font-family:monospace;background:var(--tui-clear-disabled);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){.hljs:not(:empty)::-webkit-scrollbar,.hljs:not(:empty)::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:6px solid transparent}.hljs:not(:empty)::-webkit-scrollbar{background-color:transparent}.hljs:not(:empty)::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.hljs:not(:empty)::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.hljs:not(:empty)::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host._has-filename .hljs:not(:empty){border-radius:.75rem}:host-context(tui-root._mobile) .hljs:not(:empty){padding:1rem}"]
60
+ styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.t-code{margin:0}.t-code+.t-code{margin-top:1rem}.hljs:not(:empty){font:var(--tui-font-text-m);padding:1.5rem 2rem;font-family:monospace;background:var(--tui-clear-disabled);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){.hljs:not(:empty)::-webkit-scrollbar,.hljs:not(:empty)::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:2.667rem solid transparent}.hljs:not(:empty)::-webkit-scrollbar{background-color:transparent}.hljs:not(:empty)::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.hljs:not(:empty)::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.hljs:not(:empty)::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host._has-filename .hljs:not(:empty){border-radius:.75rem}:host-context(tui-root._mobile) .hljs:not(:empty){padding:1rem}"]
61
61
  })
62
62
  ], TuiDocCodeComponent);
63
63
 
@@ -258,7 +258,7 @@ TuiDocDemoComponent.ctorParameters = () => [
258
258
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_MOBILE,] }] },
259
259
  { type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
260
260
  { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
261
- { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
261
+ { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
262
262
  { type: Location$1, decorators: [{ type: Inject, args: [Location$1,] }] },
263
263
  { type: UrlSerializer, decorators: [{ type: Inject, args: [UrlSerializer,] }] },
264
264
  { type: Array, decorators: [{ type: Inject, args: [TUI_DOC_DEMO_TEXTS,] }] }
@@ -429,7 +429,15 @@ function coerceValue(value) {
429
429
  else if (isNumberParamValue(prepared)) {
430
430
  return Number(prepared);
431
431
  }
432
- return decodeURIComponent(prepared);
432
+ const decodedValue = decodeURIComponent(prepared);
433
+ try {
434
+ return isPossibleArray(decodedValue) || isPossibleObject(decodedValue)
435
+ ? JSON.parse(decodedValue)
436
+ : decodedValue;
437
+ }
438
+ catch (_a) {
439
+ return decodedValue;
440
+ }
433
441
  }
434
442
  function isEmptyParamValue(value) {
435
443
  return ['undefined', 'null', 'NaN', 'Infinity'].includes(value);
@@ -440,6 +448,12 @@ function isBooleanParamValue(value) {
440
448
  function isNumberParamValue(value) {
441
449
  return /^-?[\d.]+(?:e-?\d+)?$/.test(value);
442
450
  }
451
+ function isPossibleArray(value) {
452
+ return value.startsWith('[') && value.endsWith(']');
453
+ }
454
+ function isPossibleObject(value) {
455
+ return value.startsWith('{') && value.endsWith('}');
456
+ }
443
457
 
444
458
  const SERIALIZED_SUFFIX = '$';
445
459
  // @bad TODO: refactor output and value sync
@@ -606,7 +620,7 @@ let TuiDocDocumentationComponent = class TuiDocDocumentationComponent {
606
620
  }
607
621
  const lastComma = color.lastIndexOf(',');
608
622
  const parsed = color
609
- .substr(lastComma)
623
+ .slice(lastComma)
610
624
  .replace(')', '')
611
625
  .replace(' ', '')
612
626
  .replace(',', '');
@@ -794,7 +808,7 @@ let TuiDocExampleComponent = class TuiDocExampleComponent {
794
808
  copyExampleLink() {
795
809
  const hashPosition = this.location.href.indexOf('#');
796
810
  const currentUrl = hashPosition > -1
797
- ? this.location.href.substr(0, hashPosition)
811
+ ? this.location.href.slice(0, Math.max(0, hashPosition))
798
812
  : this.location.href;
799
813
  const url = `${currentUrl}#${this.id}`;
800
814
  this.clipboard.copy(url);
@@ -839,7 +853,7 @@ TuiDocExampleComponent = __decorate([
839
853
  selector: 'tui-doc-example',
840
854
  template: "<h3\n *ngIf=\"heading\"\n class=\"t-title\"\n>\n <span\n polymorpheus-outlet\n [content]=\"heading | tuiDocExampleCapitalize\"\n ></span>\n <button\n *ngIf=\"id\"\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n icon=\"tuiIconLinkLarge\"\n appearance=\"icon\"\n class=\"t-link-icon\"\n [title]=\"copy$ | async\"\n (click)=\"copyExampleLink()\"\n ></button>\n</h3>\n<h4\n *ngIf=\"description\"\n polymorpheus-outlet\n class=\"t-description\"\n [content]=\"description | tuiDocExampleCapitalize\"\n></h4>\n\n<div\n *ngIf=\"processor$ | async as files\"\n class=\"t-example\"\n>\n <ng-container *ngIf=\"files | tuiDocExampleGetTabs: defaultTab as tabs\">\n <div class=\"t-tabs-wrapper\">\n <tui-tabs-with-more\n class=\"t-tabs\"\n [(activeItemIndex)]=\"activeItemIndex\"\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n *tuiTab\n tuiTab\n >\n {{tab}}\n </button>\n </ng-container>\n </tui-tabs-with-more>\n\n <button\n *ngIf=\"codeEditor\"\n tuiButton\n appearance=\"flat\"\n size=\"s\"\n [showLoader]=\"!!(loading$ | async)\"\n (click)=\"edit(files)\"\n >\n Edit on {{codeEditor.name}}\n </button>\n </div>\n\n <div\n *ngFor=\"let tab of tabs; let index = index\"\n class=\"t-content\"\n [class.t-content_animated]=\"!isCypress\"\n [class.t-content_visible]=\"activeItemIndex === index\"\n >\n <ng-container *ngIf=\"index === defaultTabIndex; else anotherTab\">\n <ng-container *ngTemplateOutlet=\"preview\"></ng-container>\n </ng-container>\n <ng-template #anotherTab>\n <ng-container\n *ngTemplateOutlet=\"codeSection; context: { $implicit: files[tabs[activeItemIndex]] || '' }\"\n ></ng-container>\n </ng-template>\n </div>\n </ng-container>\n</div>\n\n<ng-template #preview>\n <div\n automation-id=\"tui-doc-example\"\n class=\"t-demo\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template\n #codeSection\n let-code\n>\n <tui-doc-copy\n class=\"t-copy-code\"\n [cdkCopyToClipboard]=\"code\"\n ></tui-doc-copy>\n <tui-doc-code [code]=\"code\"></tui-doc-code>\n</ng-template>\n",
841
855
  changeDetection: ChangeDetectionStrategy.OnPush,
842
- styles: [":host{position:relative;display:block;padding-top:3.5rem;clear:right}:host :host-context(tui-root._mobile){padding-top:2rem}.t-title{font:var(--tui-font-heading-5);margin:0 0 .5rem}:host-context(tui-root._mobile) .t-title{font:var(--tui-font-heading-6)}.t-description{font:var(--tui-font-text-m);font-weight:400;margin:0}.t-example{position:relative;margin-top:1.5rem;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);box-shadow:0 .125rem .1875rem rgba(0,0,0,.1)}:host-context(tui-root._mobile) .t-example{margin-top:.75rem}.t-tabs-wrapper{display:flex;padding:0 2rem;box-shadow:inset 0 -1px var(--tui-base-03);justify-content:space-between;align-items:center}:host-context(tui-root._mobile) .t-tabs-wrapper{padding:0 1rem}.t-tabs{flex-grow:1}.t-demo{padding:2rem;overflow-x:auto}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){.t-demo::-webkit-scrollbar,.t-demo::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:6px solid transparent}.t-demo::-webkit-scrollbar{background-color:transparent}.t-demo::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.t-demo::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.t-demo::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host-context(tui-root._mobile) .t-demo{padding:1rem}.t-copy-code{position:absolute;top:4.375rem;right:1rem}.t-link-icon{margin-left:.3rem;vertical-align:baseline}.t-content{will-change:opacity;height:0;visibility:hidden;opacity:0}.t-content_animated{transition:opacity .3s ease-in-out}.t-content_visible{height:auto;visibility:visible;opacity:1}"]
856
+ styles: [":host{position:relative;display:block;padding-top:3.5rem;clear:right}:host :host-context(tui-root._mobile){padding-top:2rem}.t-title{font:var(--tui-font-heading-5);margin:0 0 .5rem}:host-context(tui-root._mobile) .t-title{font:var(--tui-font-heading-6)}.t-description{font:var(--tui-font-text-m);font-weight:400;margin:0}.t-example{position:relative;margin-top:1.5rem;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);box-shadow:0 .125rem .1875rem rgba(0,0,0,.1)}:host-context(tui-root._mobile) .t-example{margin-top:.75rem}.t-tabs-wrapper{display:flex;padding:0 2rem;box-shadow:inset 0 -1px var(--tui-base-03);justify-content:space-between;align-items:center}:host-context(tui-root._mobile) .t-tabs-wrapper{padding:0 1rem}.t-tabs{flex-grow:1}.t-demo{padding:2rem;overflow-x:auto}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){.t-demo::-webkit-scrollbar,.t-demo::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:2.667rem solid transparent}.t-demo::-webkit-scrollbar{background-color:transparent}.t-demo::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.t-demo::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.t-demo::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host-context(tui-root._mobile) .t-demo{padding:1rem}.t-copy-code{position:absolute;top:4.375rem;right:1rem}.t-link-icon{margin-left:.3rem;vertical-align:baseline}.t-content{will-change:opacity;height:0;visibility:hidden;opacity:0}.t-content_animated{transition:opacity .3s ease-in-out}.t-content_visible{height:auto;visibility:visible;opacity:1}"]
843
857
  }),
844
858
  __param(0, Attribute('id')),
845
859
  __param(1, Inject(Clipboard)),
@@ -927,7 +941,7 @@ __decorate([
927
941
  TuiDocMainComponent = TuiDocMainComponent_1 = __decorate([
928
942
  Component({
929
943
  selector: 'tui-doc-main',
930
- template: "<tui-theme-night *ngIf=\"night\"></tui-theme-night>\n<tui-root>\n <div class=\"tui-doc-page\">\n <tui-doc-navigation class=\"tui-doc-navigation\">\n <ng-content select=\"tuiDocNavigation\"></ng-content>\n </tui-doc-navigation>\n <div class=\"tui-doc-content\">\n <router-outlet class=\"tui-doc-outlet\"></router-outlet>\n </div>\n </div>\n <header tuiDocHeader>\n <label class=\"night-mode\">\n Night mode\n <tui-toggle\n class=\"tui-toggle\"\n [ngModel]=\"night\"\n (ngModelChange)=\"onMode($event)\"\n ></tui-toggle>\n </label>\n <ng-content select=\"tuiDocHeader\"></ng-content>\n </header>\n <ng-container ngProjectAs=\"tuiOverContent\">\n <ng-content select=\"tuiOverContent\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverDialogs\">\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverAlerts\">\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n </ng-container>\n <!-- TODO: Remove-->\n <ng-container ngProjectAs=\"tuiOverNotifications\">\n <ng-content select=\"tuiOverNotifications\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverPortals\">\n <ng-content select=\"tuiOverPortals\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverHints\">\n <ng-content select=\"tuiOverHints\"></ng-content>\n </ng-container>\n</tui-root>\n",
944
+ template: "<tui-theme-night *ngIf=\"night\"></tui-theme-night>\n<tui-root>\n <div class=\"tui-doc-page\">\n <tui-doc-navigation class=\"tui-doc-navigation\">\n <ng-content select=\"tuiDocNavigation\"></ng-content>\n </tui-doc-navigation>\n <div class=\"tui-doc-content\">\n <router-outlet class=\"tui-doc-outlet\"></router-outlet>\n </div>\n </div>\n <header tuiDocHeader>\n <label class=\"night-mode\">\n Night mode\n <tui-toggle\n class=\"tui-toggle\"\n [ngModel]=\"night\"\n (ngModelChange)=\"onMode($event)\"\n ></tui-toggle>\n </label>\n <ng-content select=\"tuiDocHeader\"></ng-content>\n </header>\n <ng-container ngProjectAs=\"tuiOverContent\">\n <ng-content select=\"tuiOverContent\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverDialogs\">\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverAlerts\">\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n </ng-container>\n <!-- TODO: 3.0 Remove-->\n <ng-container ngProjectAs=\"tuiOverNotifications\">\n <ng-content select=\"tuiOverNotifications\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverPortals\">\n <ng-content select=\"tuiOverPortals\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"tuiOverHints\">\n <ng-content select=\"tuiOverHints\"></ng-content>\n </ng-container>\n</tui-root>\n",
931
945
  encapsulation: ViewEncapsulation.None,
932
946
  providers: [
933
947
  {
@@ -1575,7 +1589,7 @@ const TUI_EXAMPLE_PRIMARY_FILE_NAME = {
1575
1589
  HTML: 'HTML',
1576
1590
  };
1577
1591
 
1578
- // TODO: remove in ivy compilation
1592
+ // TODO: 3.0 remove in ivy compilation
1579
1593
  const DEMO_TEXTS = ['Сделано с помощью директивы: ', 'Фон', 'Детали формы'];
1580
1594
  const DOC_TEXTS = [
1581
1595
  'Аргумент',