@ng-formworks/daisyui 16.5.7 → 16.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-formworks-daisyui.mjs","sources":["../../../../projects/ng-formworks-daisyui/src/lib/daisyui-framework.component.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui-framework.prefixed.component.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisui-cssframework.ts","../../../../projects/ng-formworks-daisyui/src/lib/tokens.defs.ts","../../../../projects/ng-formworks-daisyui/src/lib/widgets/daisyui-tabs.component.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui.framework.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui-framework.module.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui-framework.service.ts","../../../../projects/ng-formworks-daisyui/src/public-api.ts","../../../../projects/ng-formworks-daisyui/src/ng-formworks-daisyui.ts"],"sourcesContent":["import {\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { JsonSchemaFormService } from '@ng-formworks/core';\r\n\r\n/**\r\n* DaisyUI framework for Angular JSON Schema Form.\r\n*\r\n*/\r\n@Component({\r\n// tslint:disable-next-line:component-selector\r\nselector: 'daisyui-framework',\r\ntemplate: `\r\n<div>\r\n <css-framework [layoutNode]=\"layoutNode\" \r\n [layoutIndex]=\"layoutIndex\" \r\n [dataIndex]=\"dataIndex\"\r\n >\r\n </css-framework>\r\n</div>\r\n`,\r\nstyleUrls: ['./daisyui-framework.component.scss'],\r\nencapsulation:ViewEncapsulation.None\r\n})\r\nexport class DaisyUIFrameworkComponent implements OnInit, OnChanges {\r\n\r\n\r\nframeworkInitialized = false;\r\nwidgetOptions: any; // Options passed to child widget\r\nwidgetLayoutNode: any; // layoutNode passed to child widget\r\noptions: any; // Options used in this framework\r\nformControl: any = null;\r\ndebugOutput: any = '';\r\ndebug: any = '';\r\nparentArray: any = null;\r\nisOrderable = false;\r\n@Input() layoutNode: any;\r\n@Input() layoutIndex: number[];\r\n@Input() dataIndex: number[];\r\n\r\n\r\n\r\nconstructor(\r\n public changeDetector: ChangeDetectorRef,\r\n public jsf: JsonSchemaFormService\r\n) {\r\n \r\n}\r\n\r\n\r\n\r\nngOnInit() {\r\n\r\n}\r\n\r\nngOnChanges() {\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { JsonSchemaFormService } from '@ng-formworks/core';\r\n\r\n/**\r\n* DaisyUI framework for Angular JSON Schema Form.\r\n*\r\n*/\r\n@Component({\r\n// tslint:disable-next-line:component-selector\r\nselector: 'daisyui-framework-prefixed',\r\ntemplate: `\r\n<div>\r\n <css-framework [layoutNode]=\"layoutNode\" \r\n [layoutIndex]=\"layoutIndex\" \r\n [dataIndex]=\"dataIndex\"\r\n >\r\n </css-framework>\r\n</div>\r\n`,\r\nstyleUrls: ['./daisyui-framework.prefixed.component.scss'],\r\nencapsulation:ViewEncapsulation.None\r\n})\r\nexport class DaisyUIFrameworkComponentPrefixed implements OnInit, OnChanges {\r\n\r\n\r\nframeworkInitialized = false;\r\nwidgetOptions: any; // Options passed to child widget\r\nwidgetLayoutNode: any; // layoutNode passed to child widget\r\noptions: any; // Options used in this framework\r\nformControl: any = null;\r\ndebugOutput: any = '';\r\ndebug: any = '';\r\nparentArray: any = null;\r\nisOrderable = false;\r\n@Input() layoutNode: any;\r\n@Input() layoutIndex: number[];\r\n@Input() dataIndex: number[];\r\n\r\n\r\n\r\nconstructor(\r\n public changeDetector: ChangeDetectorRef,\r\n public jsf: JsonSchemaFormService\r\n) {\r\n \r\n}\r\n\r\n\r\n\r\nngOnInit() {\r\n\r\n}\r\n\r\nngOnChanges() {\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { css_fw } from \"@ng-formworks/cssframework\";\r\n\r\nexport const cssFrameworkCfgDaisyUI:css_fw.frameworkcfg={\r\n \"name\": \"daisyui\",\r\n \"text\":\"DaisyUI\",\r\n \"scripts\": [],\r\n \"stylesheets\": [\r\n //\"/assets/cssframework/daisyui-framework.css\"\r\n ],\r\n \"widgetstyles\": {\r\n \"__themes__\": [\r\n {\"name\":\"daisyui_default\",\"text\":\"default\"},\r\n {\"name\":\"light\",\"text\":\"light\"}, \r\n {\"name\":\"dark\",\"text\":\"dark\"}, \r\n {\"name\":\"cupcake\",\"text\":\"cupcake\"}, \r\n {\"name\":\"cmyk\",\"text\":\"cmyk\"}, \r\n {\"name\":\"pastel\",\"text\":\"pastel\"},\r\n {\"name\":\"daisyui_leaf\",\"text\":\"leaf\"}\r\n \r\n ],\r\n \"$ref\": {\r\n \"fieldHtmlClass\": \"btn btn-sm btn-accent float-right\"\r\n },\r\n \"__array_item_nonref__\": {\r\n \"htmlClass\": \"border shadow-md p-1\"\r\n },\r\n \"__form_group__\": {\r\n \"htmlClass\": \"mb-1\"\r\n },\r\n \"__control_label__\": {\r\n \"labelHtmlClass\": \"control-label\"\r\n },\r\n \"__active__\": {\r\n \"activeClass\": \"active\"\r\n },\r\n \"__required_asterisk__\": \"text-danger\",\r\n \"__screen_reader__\": \"sr-only\",\r\n \"__remove_item__\": \"float-right text-2xl opacity-50\",\r\n \"__help_block__\": \"help-block\",\r\n \"__field_addon_left__\": \"input-group-addon\",\r\n \"__field_addon_right__\": \"input-group-addon\",\r\n \"alt-date\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"alt-datetime\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"__array__\": {\r\n \"htmlClass\": \"border shadow-md p-1\"\r\n },\r\n \"array\": {},\r\n \"authfieldset\": {},\r\n \"advancedfieldset\": {},\r\n \"button\": {\r\n \"fieldHtmlClass\": \"btn btn-sm btn-info\"\r\n },\r\n \"checkbox\": {\r\n \"fieldHtmlClass\": \"checkbox\"\r\n },\r\n \"checkboxes\": {\r\n \"fieldHtmlClass\": \"checkbox\"\r\n },\r\n \"checkboxbuttons\": {\r\n \"fieldHtmlClass\": \"w-px\",\r\n \"labelHtmlClass\": \"tabs tabs-boxed\",\r\n \"htmlClass\": \"btn-group\",\r\n \"itemLabelHtmlClass\": \"btn\",\r\n \"activeClass\": \"btn-info\"\r\n },\r\n \"checkboxes-inline\": {\r\n \"fieldHtmlClass\": \"checkbox\",\r\n \"htmlClass\": \"inline-flex\",\r\n \"itemLabelHtmlClass\": \"checkbox-inline\"\r\n },\r\n \"date\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"datetime-local\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"fieldset\": {},\r\n \"integer\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full max-w-xs\"\r\n },\r\n \"number\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full max-w-xs\"\r\n },\r\n \"optionfieldset\": {},\r\n \"password\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"radiobuttons\": {\r\n \"fieldHtmlClass\": \"w-px\",\r\n \"labelHtmlClass\": \"tabs tabs-boxed\",\r\n \"htmlClass\": \"btn-group\",\r\n \"itemLabelHtmlClass\": \"btn\",\r\n \"activeClass\": \"btn-info\"\r\n },\r\n \"radio\": {\r\n \"fieldHtmlClass\": \"radio\"\r\n },\r\n \"radios\": {\r\n \"fieldHtmlClass\": \"radio\"\r\n },\r\n \"radios-inline\": {\r\n \"htmlClass\": \"inline-flex\",\r\n \"fieldHtmlClass\": \"radio\",\r\n \"itemLabelHtmlClass\": \"radio-inline\"\r\n },\r\n \"range\": {\r\n \"fieldHtmlClass\": \"range range-info\"\r\n },\r\n \"section\": {},\r\n \"selectfieldset\": {},\r\n \"select\": {\r\n \"fieldHtmlClass\": \"select select-md select-bordered w-full\"\r\n },\r\n \"submit\": {\r\n \"fieldHtmlClass\": \"btn btn-sm btn-info rounded-full\"\r\n },\r\n \"text\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"tabs\": {\r\n \"labelHtmlClass\": \"tabs-md tabs-boxed\",\r\n \"htmlClass\": \"\",\r\n \"itemLabelHtmlClass\": \"tab\",\r\n \"activeClass\": \"tab-active\"\r\n },\r\n \"tabarray\": {\r\n \"labelHtmlClass\": \"tabs tabs-boxed\",\r\n \"htmlClass\": \"\",\r\n \"itemLabelHtmlClass\": \"tab\",\r\n \"activeClass\": \"tab-active\"\r\n },\r\n \"textarea\": {\r\n \"fieldHtmlClass\": \"textarea textarea-bordered w-full\"\r\n },\r\n \"default\": {\r\n \"fieldHtmlClass\": \"form-control\"\r\n }\r\n }\r\n}\r\n//need to classify which classnames are controlled by DaisyU and which\r\n//are controlled by tailwind\r\n//-ones controlled by tailwind will have prefix tw-{{class name}}\r\n//-ones controlled by daisyui will have prefix tw-dui-{{class name}}\r\nexport function getCssFrameworkCfgPrefixed(cssFrameworkCfg:css_fw.frameworkcfg,prefixDUI=\"tw-dui\",prefixTW=\"tw\"):css_fw.frameworkcfg{\r\n \r\n let classNamesIgnored=[\r\n \r\n 'control-label',\r\n 'help-block','input-group-addon','checkbox-inline'\r\n \r\n ];\r\n\r\n //TODO use regexs\r\n //-regex won't work the actual prefix classname needs to be \r\n //available as string literals as tailwind seems to scans for the\r\n //actual names so for ex: 'tw-' + 'bg-primary' wont be picked up,\r\n //has to be 'tw-bg-primary'\r\n\r\n //NB this is not used in code, but need during the taiwind scanning \r\n //to output the class names\r\n let classNamesTW=[\r\n 'w-full','mb-1','shadow-md','p-1',\r\n 'sr-only','text-2xl', 'opacity-50',\r\n 'float-right',\r\n 'w-px',\r\n 'border',\r\n 'max-w-xs','rounded-full','form-control','inline-flex',\r\n 'tw-w-full','tw-mb-1','tw-shadow-md','tw-p-1',\r\n 'tw-sr-only','tw-text-2xl', 'tw-opacity-50',\r\n 'tw-float-right',\r\n 'tw-w-px',\r\n 'tw-max-w-xs','tw-rounded-full','tw-form-control','tw-inline-flex',\r\n 'tw-border'\r\n \r\n ];\r\n\r\n let classNamesDUI=[\r\n 'btn', 'btn-sm', 'btn-accent','btn-info','btn-group',\r\n 'input', 'input-md' ,'input-bordered',\r\n 'checkbox','tab','tabs', 'tabs-boxed','tabs-md',\"tab-active\",\r\n 'radio','radio-inline',\r\n 'range', 'range-info',\r\n 'select', 'select-md', 'select-bordered',\r\n 'textarea','textarea-bordered'\r\n \r\n ];\r\n let replaceClasses=(classList:string[]|string,prefDUI:string,prefTW:string,ignoredClasses:string[])=>{\r\n if(!Array.isArray(classList)){\r\n classList=classList.split(\" \");\r\n }\r\n return classList.map(cname=>{\r\n if(ignoredClasses.indexOf(cname)>=0){\r\n return cname;\r\n }\r\n if(classNamesDUI.indexOf(cname)>=0){\r\n return prefDUI+\"-\"+cname;\r\n }\r\n return prefTW+\"-\"+cname;\r\n });\r\n }\r\n \r\n let cssFrameworkCfgPrefixed=JSON.parse(JSON.stringify(cssFrameworkCfg));\r\n let widgetNamesIgnore=[\"__themes__\"];\r\n let widgetNamesNoSubLevel=[\r\n \"__required_asterisk__\",\r\n \"__screen_reader__\",\r\n \"__remove_item__\",\r\n \"__help_block__\",\r\n \"__field_addon_left__\",\r\n \"__field_addon_right__\",\r\n ];\r\n Object.keys(cssFrameworkCfgPrefixed.widgetstyles).forEach(widgetName=>{\r\n if(widgetNamesIgnore.indexOf(widgetName)>=0){\r\n return;\r\n }\r\n if(widgetNamesNoSubLevel.indexOf(widgetName)>=0){\r\n let cnames= cssFrameworkCfgPrefixed.widgetstyles[widgetName];\r\n cnames=replaceClasses(cnames,prefixDUI,prefixTW,classNamesIgnored);\r\n cssFrameworkCfgPrefixed.widgetstyles[widgetName]=cnames;\r\n return;\r\n }\r\n let widgetClassMap=cssFrameworkCfgPrefixed.widgetstyles[widgetName];\r\n Object.keys(widgetClassMap).forEach(classListName=>{\r\n let classListAsArr:string[]|string=widgetClassMap[classListName];\r\n classListAsArr=replaceClasses(classListAsArr,prefixDUI,prefixTW,classNamesIgnored);\r\n widgetClassMap[classListName]=classListAsArr;\r\n })\r\n \r\n })\r\n return cssFrameworkCfgPrefixed;\r\n\r\n}\r\n\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n\r\n\r\n/**\r\n * @const DUIOPTIONS\r\n * Injection token for the environment interface to be provided by the applications.\r\n */\r\nexport const DUIOPTIONS: InjectionToken<any> = new InjectionToken('DUIOPTIONS');\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { JsonSchemaFormService } from '@ng-formworks/core';\r\n\r\n\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'tabs-widget',\r\n template: `\r\n <div\r\n [class]=\"options?.labelHtmlClass || ''\">\r\n <a *ngFor=\"let item of layoutNode?.items; let i = index\"\r\n [class]=\"(options?.itemLabelHtmlClass || '') + (selectedItem === i ?\r\n (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :\r\n (' ' + options?.style?.unselected))\"\r\n >\r\n <span *ngIf=\"showAddTab || item.type !== '$ref'\"\r\n [class]=\"(selectedItem === i ? (' ' + options?.activeClass + ' ' + options?.style?.selected) :\r\n (' ' + options?.style?.unselected))\"\r\n [innerHTML]=\"setTabTitle(item, i)\"\r\n (click)=\"select(i)\"></span>\r\n </a>\r\n\r\n </div>\r\n\r\n <!--\r\n <div class=\"tabs tabs-boxed\">\r\n <a class=\"tab\">Tab 1</a> \r\n <a class=\"tab tab-active\">Tab 2</a> \r\n <a class=\"tab\">Tab 3</a>\r\n</div>\r\n-->\r\n\r\n <div *ngFor=\"let layoutItem of layoutNode?.items; let i = index\"\r\n [class]=\"options?.htmlClass || ''\">\r\n\r\n <select-framework-widget *ngIf=\"selectedItem === i\"\r\n [class]=\"(options?.fieldHtmlClass || '') +\r\n ' ' + (options?.activeClass || '') +\r\n ' ' + (options?.style?.selected || '')\"\r\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\r\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\r\n [layoutNode]=\"layoutItem\"></select-framework-widget>\r\n\r\n </div>`,\r\n styles: [` a { cursor: pointer; } `],\r\n})\r\nexport class DaisyUITabsComponent implements OnInit {\r\n options: any;\r\n itemCount: number;\r\n selectedItem = 0;\r\n showAddTab = true;\r\n @Input() layoutNode: any;\r\n @Input() layoutIndex: number[];\r\n @Input() dataIndex: number[];\r\n\r\n constructor(\r\n private jsf: JsonSchemaFormService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.options = this.layoutNode.options || {};\r\n this.itemCount = this.layoutNode.items.length - 1;\r\n this.updateControl();\r\n }\r\n\r\n select(index) {\r\n if (this.layoutNode.items[index].type === '$ref') {\r\n this.itemCount = this.layoutNode.items.length;\r\n this.jsf.addItem({\r\n layoutNode: this.layoutNode.items[index],\r\n layoutIndex: this.layoutIndex.concat(index),\r\n dataIndex: this.dataIndex.concat(index)\r\n });\r\n this.updateControl();\r\n }\r\n this.selectedItem = index;\r\n }\r\n\r\n updateControl() {\r\n const lastItem = this.layoutNode.items[this.layoutNode.items.length - 1];\r\n if (lastItem.type === '$ref' &&\r\n this.itemCount >= (lastItem.options.maxItems || 1000)\r\n ) {\r\n this.showAddTab = false;\r\n }\r\n }\r\n\r\n setTabTitle(item: any, index: number): string {\r\n return this.jsf.setArrayItemTitle(this, item, index);\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { CssFramework, CssframeworkService } from '@ng-formworks/cssframework';\r\nimport { cssFrameworkCfgDaisyUI, getCssFrameworkCfgPrefixed } from './daisui-cssframework';\r\nimport { DaisyUIFrameworkComponent } from './daisyui-framework.component';\r\nimport { DaisyUIFrameworkComponentPrefixed } from './daisyui-framework.prefixed.component';\r\nimport { DUIOPTIONS } from './tokens.defs';\r\nimport { DaisyUITabsComponent } from './widgets/daisyui-tabs.component';\r\n\r\n\r\n@Injectable()\r\nexport class DaisyUIFramework extends CssFramework {\r\n\r\nframework=DaisyUIFrameworkComponent;\r\n constructor(public cssFWService:CssframeworkService,@Inject(DUIOPTIONS) \r\n //use class prefix by default-doesn't seem to work angular will inject null\r\n //for TS to use default value, must be undefined\r\n //-see https://github.com/angular/angular/issues/37306\r\n @Optional() private duiOptions:any={classPrefix:true}\r\n ){\r\n let duiOpts:any=duiOptions===null?{classPrefix:true}:duiOptions;\r\n let cssFrameworkCfg=cssFrameworkCfgDaisyUI;\r\n if(duiOpts?.classPrefix ){//added null,see note above\r\n cssFrameworkCfg=getCssFrameworkCfgPrefixed(cssFrameworkCfgDaisyUI)\r\n }\r\n super(cssFrameworkCfg,cssFWService);\r\n if(duiOpts?.classPrefix){\r\n this.framework=DaisyUIFrameworkComponentPrefixed;\r\n }\r\n this.widgets= {\r\n\r\n 'tabs': DaisyUITabsComponent,\r\n \r\n };\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { Framework, FrameworkLibraryService, JsonSchemaFormModule, JsonSchemaFormService, WidgetLibraryModule, WidgetLibraryService } from '@ng-formworks/core';\r\n\r\nimport { CssFrameworkModule } from '@ng-formworks/cssframework';\r\nimport { DaisyUIFrameworkComponent } from './daisyui-framework.component';\r\nimport { DaisyUIFrameworkComponentPrefixed } from './daisyui-framework.prefixed.component';\r\nimport { DaisyUIFramework } from './daisyui.framework';\r\nimport { DaisyUITabsComponent } from './widgets/daisyui-tabs.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DaisyUIFrameworkComponent,\r\n DaisyUIFrameworkComponentPrefixed,\r\n DaisyUITabsComponent\r\n ],\r\n imports: [\r\n JsonSchemaFormModule,\r\n CommonModule,\r\n WidgetLibraryModule,\r\n CssFrameworkModule\r\n ],\r\n exports: [\r\n DaisyUIFrameworkComponent,\r\n DaisyUIFrameworkComponentPrefixed,\r\n JsonSchemaFormModule,\r\n DaisyUITabsComponent\r\n ],\r\n providers: [\r\n JsonSchemaFormService,\r\n FrameworkLibraryService,\r\n WidgetLibraryService,\r\n \r\n { provide: Framework, useClass: DaisyUIFramework, multi: true }\r\n]\r\n})\r\nexport class DaisyUIFrameworkModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DaisyuiFrameworkService {\r\n\r\n constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of @ng-formworks/daisyui\r\n */\r\n\r\nexport * from './lib/daisyui-framework.component';\r\nexport * from './lib/daisyui-framework.module';\r\nexport * from './lib/daisyui-framework.prefixed.component';\r\nexport * from './lib/daisyui-framework.service';\r\nexport * from './lib/daisyui.framework';\r\nexport * from './lib/tokens.defs';\r\nexport { DaisyUITabsComponent } from './lib/widgets/daisyui-tabs.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"ng-formworks-daisyui.mjs","sources":["../../../../projects/ng-formworks-daisyui/src/lib/daisyui-framework.component.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui-framework.prefixed.component.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui-cssframework.ts","../../../../projects/ng-formworks-daisyui/src/lib/tokens.defs.ts","../../../../projects/ng-formworks-daisyui/src/lib/widgets/daisyui-tabs.component.ts","../../../../projects/ng-formworks-daisyui/src/lib/widgets/daisyui-one-of.component.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui.framework.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui-framework.module.ts","../../../../projects/ng-formworks-daisyui/src/lib/daisyui-framework.service.ts","../../../../projects/ng-formworks-daisyui/src/public-api.ts","../../../../projects/ng-formworks-daisyui/src/ng-formworks-daisyui.ts"],"sourcesContent":["import {\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { JsonSchemaFormService } from '@ng-formworks/core';\r\n\r\n/**\r\n* DaisyUI framework for Angular JSON Schema Form.\r\n*\r\n*/\r\n@Component({\r\n// tslint:disable-next-line:component-selector\r\nselector: 'daisyui-framework',\r\ntemplate: `\r\n<div>\r\n <css-framework [layoutNode]=\"layoutNode\" \r\n [layoutIndex]=\"layoutIndex\" \r\n [dataIndex]=\"dataIndex\"\r\n >\r\n </css-framework>\r\n</div>\r\n`,\r\nstyleUrls: ['./daisyui-framework.component.scss'],\r\nencapsulation:ViewEncapsulation.None\r\n})\r\nexport class DaisyUIFrameworkComponent implements OnInit, OnChanges {\r\n\r\n\r\nframeworkInitialized = false;\r\nwidgetOptions: any; // Options passed to child widget\r\nwidgetLayoutNode: any; // layoutNode passed to child widget\r\noptions: any; // Options used in this framework\r\nformControl: any = null;\r\ndebugOutput: any = '';\r\ndebug: any = '';\r\nparentArray: any = null;\r\nisOrderable = false;\r\n@Input() layoutNode: any;\r\n@Input() layoutIndex: number[];\r\n@Input() dataIndex: number[];\r\n\r\n\r\n\r\nconstructor(\r\n public changeDetector: ChangeDetectorRef,\r\n public jsf: JsonSchemaFormService\r\n) {\r\n \r\n}\r\n\r\n\r\n\r\nngOnInit() {\r\n\r\n}\r\n\r\nngOnChanges() {\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { JsonSchemaFormService } from '@ng-formworks/core';\r\n\r\n/**\r\n* DaisyUI framework for Angular JSON Schema Form.\r\n*\r\n*/\r\n@Component({\r\n// tslint:disable-next-line:component-selector\r\nselector: 'daisyui-framework-prefixed',\r\ntemplate: `\r\n<div>\r\n <css-framework [layoutNode]=\"layoutNode\" \r\n [layoutIndex]=\"layoutIndex\" \r\n [dataIndex]=\"dataIndex\"\r\n >\r\n </css-framework>\r\n</div>\r\n`,\r\nstyleUrls: ['./daisyui-framework.prefixed.component.scss'],\r\nencapsulation:ViewEncapsulation.None\r\n})\r\nexport class DaisyUIFrameworkComponentPrefixed implements OnInit, OnChanges {\r\n\r\n\r\nframeworkInitialized = false;\r\nwidgetOptions: any; // Options passed to child widget\r\nwidgetLayoutNode: any; // layoutNode passed to child widget\r\noptions: any; // Options used in this framework\r\nformControl: any = null;\r\ndebugOutput: any = '';\r\ndebug: any = '';\r\nparentArray: any = null;\r\nisOrderable = false;\r\n@Input() layoutNode: any;\r\n@Input() layoutIndex: number[];\r\n@Input() dataIndex: number[];\r\n\r\n\r\n\r\nconstructor(\r\n public changeDetector: ChangeDetectorRef,\r\n public jsf: JsonSchemaFormService\r\n) {\r\n \r\n}\r\n\r\n\r\n\r\nngOnInit() {\r\n\r\n}\r\n\r\nngOnChanges() {\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { css_fw } from \"@ng-formworks/cssframework\";\r\n\r\nexport const cssFrameworkCfgDaisyUI:css_fw.frameworkcfg={\r\n \"name\": \"daisyui\",\r\n \"text\":\"DaisyUI\",\r\n \"scripts\": [],\r\n \"stylesheets\": [\r\n //\"/assets/cssframework/daisyui-framework.css\"\r\n ],\r\n \"widgetstyles\": {\r\n \"__themes__\": [\r\n {\"name\":\"daisyui_default\",\"text\":\"default\"},\r\n {\"name\":\"light\",\"text\":\"light\"}, \r\n {\"name\":\"dark\",\"text\":\"dark\"}, \r\n {\"name\":\"cupcake\",\"text\":\"cupcake\"}, \r\n {\"name\":\"cmyk\",\"text\":\"cmyk\"}, \r\n {\"name\":\"pastel\",\"text\":\"pastel\"},\r\n {\"name\":\"daisyui_leaf\",\"text\":\"leaf\"}\r\n \r\n ],\r\n \"$ref\": {\r\n \"fieldHtmlClass\": \"btn btn-sm btn-accent\"\r\n },\r\n \"__array_item_nonref__\": {\r\n \"htmlClass\": \"border shadow-md p-1\"\r\n },\r\n \"__form_group__\": {\r\n \"htmlClass\": \"mb-1\"\r\n },\r\n \"__control_label__\": {\r\n \"labelHtmlClass\": \"control-label\"\r\n },\r\n \"__active__\": {\r\n \"activeClass\": \"active\"\r\n },\r\n \"__required_asterisk__\": \"text-danger\",\r\n \"__screen_reader__\": \"sr-only\",\r\n \"__remove_item__\": \"float-right text-2xl opacity-50\",\r\n \"__help_block__\": \"help-block\",\r\n \"__field_addon_left__\": \"input-group-addon\",\r\n \"__field_addon_right__\": \"input-group-addon\",\r\n \"alt-date\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"alt-datetime\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"__array__\": {\r\n \"htmlClass\": \"border shadow-md p-1\"\r\n },\r\n \"array\": {},\r\n \"authfieldset\": {},\r\n \"advancedfieldset\": {},\r\n \"button\": {\r\n \"fieldHtmlClass\": \"btn btn-sm btn-info\"\r\n },\r\n \"checkbox\": {\r\n \"fieldHtmlClass\": \"checkbox\"\r\n },\r\n \"checkboxes\": {\r\n \"fieldHtmlClass\": \"checkbox\"\r\n },\r\n \"checkboxbuttons\": {\r\n \"fieldHtmlClass\": \"w-px\",\r\n \"labelHtmlClass\": \"tabs tabs-box\",\r\n \"htmlClass\": \"btn-group\",\r\n \"itemLabelHtmlClass\": \"btn\",\r\n \"activeClass\": \"btn-info\"\r\n },\r\n \"checkboxes-inline\": {\r\n \"fieldHtmlClass\": \"checkbox\",\r\n \"htmlClass\": \"inline-flex\",\r\n \"itemLabelHtmlClass\": \"checkbox-inline\"\r\n },\r\n \"date\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"datetime-local\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"fieldset\": {},\r\n \"integer\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full max-w-xs\"\r\n },\r\n \"number\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full max-w-xs\"\r\n },\r\n \"optionfieldset\": {},\r\n \"password\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"radiobuttons\": {\r\n \"fieldHtmlClass\": \"w-px\",\r\n \"labelHtmlClass\": \"tabs tabs-box\",\r\n \"htmlClass\": \"btn-group\",\r\n \"itemLabelHtmlClass\": \"btn\",\r\n \"activeClass\": \"btn-info\"\r\n },\r\n \"radio\": {\r\n \"fieldHtmlClass\": \"radio\"\r\n },\r\n \"radios\": {\r\n \"fieldHtmlClass\": \"radio\"\r\n },\r\n \"radios-inline\": {\r\n \"htmlClass\": \"inline-flex\",\r\n \"fieldHtmlClass\": \"radio\",\r\n \"itemLabelHtmlClass\": \"radio-inline\"\r\n },\r\n \"range\": {\r\n \"fieldHtmlClass\": \"range range-info\"\r\n },\r\n \"section\": {},\r\n \"selectfieldset\": {},\r\n \"select\": {\r\n \"fieldHtmlClass\": \"select select-md select-bordered w-full\"\r\n },\r\n \"submit\": {\r\n \"fieldHtmlClass\": \"btn btn-sm btn-info rounded-full\"\r\n },\r\n \"text\": {\r\n \"fieldHtmlClass\": \"input input-md input-bordered w-full\"\r\n },\r\n \"tabs\": {\r\n \"labelHtmlClass\": \"tabs-md tabs-box\",\r\n \"htmlClass\": \"\",\r\n \"itemLabelHtmlClass\": \"tab\",\r\n \"activeClass\": \"tab-active\",\r\n \"widget_radioClass\":\"radio\"\r\n },\r\n \"tabarray\": {\r\n \"labelHtmlClass\": \"tabs tabs-box\",\r\n \"htmlClass\": \"\",\r\n \"itemLabelHtmlClass\": \"tab\",\r\n \"activeClass\": \"tab-active\",\r\n \"widget_radioClass\":\"radio\"\r\n },\r\n \"one-of\": {\r\n \"labelHtmlClass\": \"tabs tabs-box\",\r\n \"htmlClass\": \"\",\r\n \"itemLabelHtmlClass\": \"tab\",\r\n \"activeClass\": \"tab-active\",\r\n \"widget_radioClass\":\"radio\"\r\n },\r\n \"textarea\": {\r\n \"fieldHtmlClass\": \"textarea textarea-bordered w-full\"\r\n },\r\n \"default\": {\r\n \"fieldHtmlClass\": \"form-control\"\r\n }\r\n }\r\n}\r\n//need to classify which classnames are controlled by DaisyU and which\r\n//are controlled by tailwind\r\n//-ones controlled by tailwind will have prefix tw:{{class name}}\r\n//-ones controlled by daisyui will have prefix tw:dui-{{class name}}\r\nexport function getCssFrameworkCfgPrefixed(cssFrameworkCfg:css_fw.frameworkcfg,prefixDUI=\"tw:dui-\",prefixTW=\"tw:\"):css_fw.frameworkcfg{\r\n \r\n let classNamesIgnored=[\r\n \r\n 'control-label',\r\n 'help-block','input-group-addon','checkbox-inline'\r\n \r\n ];\r\n\r\n //TODO use regexs\r\n //-regex won't work the actual prefix classname needs to be \r\n //available as string literals as tailwind seems to scans for the\r\n //actual names so for ex: 'tw:' + 'bg-primary' wont be picked up,\r\n //has to be 'tw:bg-primary'\r\n\r\n //NB this is not used in code, but need during the taiwind scanning \r\n //to output the class names\r\n let classNamesTW=[\r\n 'w-full','mb-1','shadow-md','p-1',\r\n 'sr-only','text-2xl', 'opacity-50',\r\n 'float-right',\r\n 'w-px',\r\n 'border',\r\n 'max-w-xs','rounded-full','form-control','inline-flex',\r\n 'tw:w-full','tw:mb-1','tw:shadow-md','tw:p-1',\r\n 'tw:sr-only','tw:text-2xl', 'tw:opacity-50',\r\n 'tw:float-right',\r\n 'tw:w-px',\r\n 'tw:max-w-xs','tw:rounded-full','tw:form-control','tw:inline-flex',\r\n 'tw:border'\r\n \r\n ];\r\n\r\n let classNamesDUI=[\r\n 'btn', 'btn-sm', 'btn-accent','btn-info','btn-group',\r\n 'input', 'input-md' ,'input-bordered',\r\n 'checkbox','tab','tabs', 'tabs-box','tabs-md',\"tab-active\",\r\n 'radio','radio-inline',\r\n 'range', 'range-info',\r\n 'select', 'select-md', 'select-bordered',\r\n 'textarea','textarea-bordered'\r\n \r\n ];\r\n let replaceClasses=(classList:string[]|string,prefDUI:string,prefTW:string,ignoredClasses:string[],prefSepDUI=\"\",prefSepTw=\"\")=>{\r\n if(!Array.isArray(classList)){\r\n classList=classList.split(\" \");\r\n }\r\n return classList.map(cname=>{\r\n if(ignoredClasses.indexOf(cname)>=0){\r\n return cname;\r\n }\r\n if(classNamesDUI.indexOf(cname)>=0){\r\n return prefDUI+prefSepDUI+cname;\r\n }\r\n return prefTW+prefSepTw+cname;\r\n });\r\n }\r\n \r\n let cssFrameworkCfgPrefixed=JSON.parse(JSON.stringify(cssFrameworkCfg));\r\n let widgetNamesIgnore=[\"__themes__\"];\r\n let widgetNamesNoSubLevel=[\r\n \"__required_asterisk__\",\r\n \"__screen_reader__\",\r\n \"__remove_item__\",\r\n \"__help_block__\",\r\n \"__field_addon_left__\",\r\n \"__field_addon_right__\",\r\n ];\r\n Object.keys(cssFrameworkCfgPrefixed.widgetstyles).forEach(widgetName=>{\r\n if(widgetNamesIgnore.indexOf(widgetName)>=0){\r\n return;\r\n }\r\n if(widgetNamesNoSubLevel.indexOf(widgetName)>=0){\r\n let cnames= cssFrameworkCfgPrefixed.widgetstyles[widgetName];\r\n cnames=replaceClasses(cnames,prefixDUI,prefixTW,classNamesIgnored);\r\n cssFrameworkCfgPrefixed.widgetstyles[widgetName]=cnames;\r\n return;\r\n }\r\n let widgetClassMap=cssFrameworkCfgPrefixed.widgetstyles[widgetName];\r\n Object.keys(widgetClassMap).forEach(classListName=>{\r\n let classListAsArr:string[]|string=widgetClassMap[classListName];\r\n classListAsArr=replaceClasses(classListAsArr,prefixDUI,prefixTW,classNamesIgnored);\r\n widgetClassMap[classListName]=classListAsArr;\r\n })\r\n \r\n })\r\n return cssFrameworkCfgPrefixed;\r\n\r\n}\r\n\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n\r\n\r\n/**\r\n * @const DUIOPTIONS\r\n * Injection token for the environment interface to be provided by the applications.\r\n */\r\nexport const DUIOPTIONS: InjectionToken<any> = new InjectionToken('DUIOPTIONS');\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { JsonSchemaFormService } from '@ng-formworks/core';\r\n\r\n\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'daisyui-tabs-widget',\r\n template: `\r\n <div\r\n [class]=\"options?.labelHtmlClass || ''\">\r\n <a *ngFor=\"let item of layoutNode?.items; let i = index\"\r\n [class]=\"(options?.itemLabelHtmlClass || '') + (selectedItem === i ?\r\n (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :\r\n (' ' + options?.style?.unselected))\"\r\n (click)=\"select(i)\"\r\n >\r\n <input type=\"radio\" [value]=\"i\" *ngIf=\"options?.tabMode=='oneOfMode'\" \r\n name=\"tabSelection\" \r\n [(ngModel)]=\"selectedItem\"\r\n [class]=\"(options?.widget_radioClass || '')\"\r\n [value]=\"i\" \r\n (change)=\"select(i)\"\r\n />\r\n <span *ngIf=\"showAddTab || item.type !== '$ref'\"\r\n [class]=\"(selectedItem === i ? (' ' + options?.activeClass + ' ' + options?.style?.selected) :\r\n (' ' + options?.style?.unselected))\">{{setTabTitle(item, i)}}</span>\r\n \r\n </a>\r\n\r\n </div>\r\n\r\n <!--\r\n <div class=\"tabs tabs-boxed\">\r\n <a class=\"tab\">Tab 1</a> \r\n <a class=\"tab tab-active\">Tab 2</a> \r\n <a class=\"tab\">Tab 3</a>\r\n</div>\r\n-->\r\n\r\n <div *ngFor=\"let layoutItem of layoutNode?.items; let i = index\"\r\n [class]=\"(options?.htmlClass || '') + (selectedItem != i?' ngf-hidden':'')\">\r\n <ng-container *ngIf=\"options?.tabMode=='oneOfMode'\">\r\n <select-framework-widget *ngIf=\"selectedItem === i\"\r\n [class]=\"(options?.fieldHtmlClass || '') +\r\n ' ' + (options?.activeClass || '') +\r\n ' ' + (options?.style?.selected || '')\"\r\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\r\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\r\n [layoutNode]=\"layoutItem\"></select-framework-widget>\r\n </ng-container>\r\n <ng-container *ngIf=\"options?.tabMode != 'oneOfMode'\">\r\n <select-framework-widget \r\n [class]=\"(options?.fieldHtmlClass || '') +\r\n ' ' + (options?.activeClass || '') +\r\n ' ' + (options?.style?.selected || '')\"\r\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\r\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\r\n [layoutNode]=\"layoutItem\"></select-framework-widget>\r\n </ng-container>\r\n </div>`,\r\n styles: [` a { cursor: pointer; }\r\n .ngf-hidden{display:none}\r\n `],\r\n standalone: false\r\n})\r\nexport class DaisyUITabsComponent implements OnInit {\r\n options: any;\r\n itemCount: number;\r\n selectedItem = 0;\r\n showAddTab = true;\r\n @Input() layoutNode: any;\r\n @Input() layoutIndex: number[];\r\n @Input() dataIndex: number[];\r\n\r\n constructor(\r\n private jsf: JsonSchemaFormService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.options = this.layoutNode.options || {};\r\n if(this.options.selectedTab){\r\n this.selectedItem = this.options.selectedTab;\r\n }\r\n this.itemCount = this.layoutNode.items.length - 1;\r\n this.updateControl();\r\n }\r\n\r\n select(index) {\r\n if (this.layoutNode.items[index].type === '$ref') {\r\n this.itemCount = this.layoutNode.items.length;\r\n this.jsf.addItem({\r\n layoutNode: this.layoutNode.items[index],\r\n layoutIndex: this.layoutIndex.concat(index),\r\n dataIndex: this.dataIndex.concat(index)\r\n });\r\n this.updateControl();\r\n }\r\n this.selectedItem = index;\r\n }\r\n\r\n updateControl() {\r\n const lastItem = this.layoutNode.items[this.layoutNode.items.length - 1];\r\n if (lastItem.type === '$ref' &&\r\n this.itemCount >= (lastItem.options.maxItems || 1000)\r\n ) {\r\n this.showAddTab = false;\r\n }\r\n }\r\n\r\n setTabTitle(item: any, index: number): string {\r\n return this.jsf.setArrayItemTitle(this, item, index);\r\n }\r\n}\r\n","import { Component, inject, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { hasNonNullValue, hasOwn, JsonPointer, JsonSchemaFormService, path2ControlKey } from '@ng-formworks/core';\r\nimport { isEqual, isObject } from 'lodash';\r\n\r\n\r\n\r\n// TODO: Add this control\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'daisyui-one-of-widget',\r\n template: `<h4>{{this.options?.description}}</h4>\r\n <daisyui-tabs-widget #tabs [layoutNode]=\"layoutNode\" \r\n [layoutIndex]=\"layoutIndex\" \r\n [dataIndex]=\"dataIndex\" >\r\n </daisyui-tabs-widget>`,\r\n standalone: false\r\n})\r\nexport class DaisyUIOneOfComponent implements OnInit,OnDestroy {\r\n private jsf = inject(JsonSchemaFormService);\r\n\r\n formControl: AbstractControl;\r\n controlName: string;\r\n controlValue: any;\r\n controlDisabled = false;\r\n boundControl = false;\r\n options: any;\r\n @Input() layoutNode;\r\n @Input() layoutIndex;\r\n @Input() dataIndex;\r\n\r\n ngOnInit() {\r\n this.options = this.layoutNode.options || {};\r\n this.options.tabMode=\"oneOfMode\";\r\n this.options.selectedTab=this.findSelectedTab();\r\n //this.options.description=this.options.description||\"choose one of\";\r\n this.jsf.initializeControl(this);\r\n }\r\n\r\n findSelectedTab(){\r\n //TODO test- this.jsf.formValues seems to be the initial data supplied to the form\r\n //while the jsf.formGroup value is derived from the actual controls\r\n //let formValue=this.jsf.getFormControlValue(this);\r\n let foundInd=-1;\r\n //seach for non null value\r\n if(this.layoutNode.items){\r\n this.layoutNode.items.forEach((layoutItem,ind)=>{\r\n let formValue=JsonPointer.get(this.jsf.formValues,layoutItem.dataPointer);\r\n if(layoutItem.oneOfPointer){\r\n let controlKey=path2ControlKey(layoutItem.oneOfPointer);\r\n let fname=layoutItem.name;\r\n if(hasOwn(this.jsf.formGroup.controls,controlKey)&&\r\n (formValue || hasNonNullValue(this.jsf.formGroup.controls[controlKey].value))\r\n //hasOwn(formValue,fname) && hasOwn(this.jsf.formGroup.controls,controlKey) \r\n // && (formValue[fname] || this.jsf.formGroup.controls[controlKey].value)\r\n //&&isEqual(formValue[fname],this.jsf.formGroup.controls[controlKey].value)\r\n ){\r\n foundInd=ind;\r\n }\r\n //foundInd=formValue[controlKey]!=null?ind:foundInd;\r\n //if no exact match found, then search in descendant values\r\n //to see which one of item matches\r\n if(foundInd==-1){\r\n //find all descendant oneof paths\r\n let descendantOneOfControlNames=Object.keys(this.jsf.formGroup.controls).filter(controlName=>{\r\n return controlName.startsWith(controlKey);\r\n })\r\n descendantOneOfControlNames.forEach(controlName=>{\r\n let parts=controlName.split('$');\r\n let fieldName=parts[parts.length-1];\r\n let controlValue=this.jsf.formGroup.controls[controlName].value;\r\n if(isObject(formValue) && hasOwn(formValue,fieldName) && \r\n formValue[fieldName]==controlValue\r\n //formValue[fieldName]||controlValue\r\n ){\r\n foundInd=ind;\r\n }else //if(formValue || controlValue){\r\n if(isEqual(formValue,controlValue)){\r\n foundInd=ind;\r\n }\r\n })\r\n //now need to compare values\r\n }\r\n }\r\n })\r\n }\r\n return Math.max(foundInd,0);\r\n }\r\n\r\n updateValue(event) {\r\n this.jsf.updateValue(this, event.target.value);\r\n }\r\n\r\n ngOnDestroy () {\r\n //this.jsf.updateValue(this, null);\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { CssFramework, CssframeworkService } from '@ng-formworks/cssframework';\r\nimport { cssFrameworkCfgDaisyUI, getCssFrameworkCfgPrefixed } from './daisyui-cssframework';\r\nimport { DaisyUIFrameworkComponent } from './daisyui-framework.component';\r\nimport { DaisyUIFrameworkComponentPrefixed } from './daisyui-framework.prefixed.component';\r\nimport { DUIOPTIONS } from './tokens.defs';\r\nimport { DaisyUIOneOfComponent } from './widgets/daisyui-one-of.component';\r\nimport { DaisyUITabsComponent } from './widgets/daisyui-tabs.component';\r\n\r\n\r\n@Injectable()\r\nexport class DaisyUIFramework extends CssFramework {\r\n\r\nframework=DaisyUIFrameworkComponent;\r\n constructor(public cssFWService:CssframeworkService,@Inject(DUIOPTIONS) \r\n //use class prefix by default-doesn't seem to work angular will inject null\r\n //for TS to use default value, must be undefined\r\n //-see https://github.com/angular/angular/issues/37306\r\n @Optional() private duiOptions:any={classPrefix:true}\r\n ){\r\n let duiOpts:any=duiOptions===null?{classPrefix:true}:duiOptions;\r\n let cssFrameworkCfg=cssFrameworkCfgDaisyUI;\r\n if(duiOpts?.classPrefix ){//added null,see note above\r\n cssFrameworkCfg=getCssFrameworkCfgPrefixed(cssFrameworkCfgDaisyUI)\r\n }\r\n super(cssFrameworkCfg,cssFWService);\r\n if(duiOpts?.classPrefix){\r\n this.framework=DaisyUIFrameworkComponentPrefixed;\r\n }\r\n this.widgets= {\r\n\r\n 'tabs': DaisyUITabsComponent,\r\n 'one-of':DaisyUIOneOfComponent\r\n \r\n };\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { Framework, FrameworkLibraryService, JsonSchemaFormModule, JsonSchemaFormService, WidgetLibraryModule, WidgetLibraryService } from '@ng-formworks/core';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CssFrameworkModule } from '@ng-formworks/cssframework';\r\nimport { DaisyUIFrameworkComponent } from './daisyui-framework.component';\r\nimport { DaisyUIFrameworkComponentPrefixed } from './daisyui-framework.prefixed.component';\r\nimport { DaisyUIFramework } from './daisyui.framework';\r\nimport { DaisyUIOneOfComponent } from './widgets/daisyui-one-of.component';\r\nimport { DaisyUITabsComponent } from './widgets/daisyui-tabs.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DaisyUIFrameworkComponent,\r\n DaisyUIFrameworkComponentPrefixed,\r\n DaisyUITabsComponent,\r\n DaisyUIOneOfComponent\r\n ],\r\n imports: [\r\n JsonSchemaFormModule,\r\n CommonModule,\r\n FormsModule,\r\n WidgetLibraryModule,\r\n CssFrameworkModule\r\n ],\r\n exports: [\r\n DaisyUIFrameworkComponent,\r\n DaisyUIFrameworkComponentPrefixed,\r\n JsonSchemaFormModule,\r\n DaisyUITabsComponent\r\n ],\r\n providers: [\r\n JsonSchemaFormService,\r\n FrameworkLibraryService,\r\n WidgetLibraryService,\r\n \r\n { provide: Framework, useClass: DaisyUIFramework, multi: true }\r\n]\r\n})\r\nexport class DaisyUIFrameworkModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DaisyuiFrameworkService {\r\n\r\n constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of @ng-formworks/daisyui\r\n */\r\n\r\nexport * from './lib/daisyui-framework.component';\r\nexport * from './lib/daisyui-framework.module';\r\nexport * from './lib/daisyui-framework.prefixed.component';\r\nexport * from './lib/daisyui-framework.service';\r\nexport * from './lib/daisyui.framework';\r\nexport * from './lib/tokens.defs';\r\nexport { DaisyUIOneOfComponent } from './lib/widgets/daisyui-one-of.component';\r\nexport { DaisyUITabsComponent } from './lib/widgets/daisyui-tabs.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.DaisyUITabsComponent"],"mappings":"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"}
@@ -2,11 +2,13 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./daisyui-framework.component";
3
3
  import * as i2 from "./daisyui-framework.prefixed.component";
4
4
  import * as i3 from "./widgets/daisyui-tabs.component";
5
- import * as i4 from "@ng-formworks/core";
6
- import * as i5 from "@angular/common";
7
- import * as i6 from "@ng-formworks/cssframework";
5
+ import * as i4 from "./widgets/daisyui-one-of.component";
6
+ import * as i5 from "@ng-formworks/core";
7
+ import * as i6 from "@angular/common";
8
+ import * as i7 from "@angular/forms";
9
+ import * as i8 from "@ng-formworks/cssframework";
8
10
  export declare class DaisyUIFrameworkModule {
9
11
  static ɵfac: i0.ɵɵFactoryDeclaration<DaisyUIFrameworkModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<DaisyUIFrameworkModule, [typeof i1.DaisyUIFrameworkComponent, typeof i2.DaisyUIFrameworkComponentPrefixed, typeof i3.DaisyUITabsComponent], [typeof i4.JsonSchemaFormModule, typeof i5.CommonModule, typeof i4.WidgetLibraryModule, typeof i6.CssFrameworkModule], [typeof i1.DaisyUIFrameworkComponent, typeof i2.DaisyUIFrameworkComponentPrefixed, typeof i4.JsonSchemaFormModule, typeof i3.DaisyUITabsComponent]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DaisyUIFrameworkModule, [typeof i1.DaisyUIFrameworkComponent, typeof i2.DaisyUIFrameworkComponentPrefixed, typeof i3.DaisyUITabsComponent, typeof i4.DaisyUIOneOfComponent], [typeof i5.JsonSchemaFormModule, typeof i6.CommonModule, typeof i7.FormsModule, typeof i5.WidgetLibraryModule, typeof i8.CssFrameworkModule], [typeof i1.DaisyUIFrameworkComponent, typeof i2.DaisyUIFrameworkComponentPrefixed, typeof i5.JsonSchemaFormModule, typeof i3.DaisyUITabsComponent]>;
11
13
  static ɵinj: i0.ɵɵInjectorDeclaration<DaisyUIFrameworkModule>;
12
14
  }
@@ -0,0 +1,21 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { AbstractControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DaisyUIOneOfComponent implements OnInit, OnDestroy {
5
+ private jsf;
6
+ formControl: AbstractControl;
7
+ controlName: string;
8
+ controlValue: any;
9
+ controlDisabled: boolean;
10
+ boundControl: boolean;
11
+ options: any;
12
+ layoutNode: any;
13
+ layoutIndex: any;
14
+ dataIndex: any;
15
+ ngOnInit(): void;
16
+ findSelectedTab(): number;
17
+ updateValue(event: any): void;
18
+ ngOnDestroy(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaisyUIOneOfComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<DaisyUIOneOfComponent, "daisyui-one-of-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; }; "dataIndex": { "alias": "dataIndex"; "required": false; }; }, {}, never, never, false, never>;
21
+ }
@@ -16,5 +16,5 @@ export declare class DaisyUITabsComponent implements OnInit {
16
16
  updateControl(): void;
17
17
  setTabTitle(item: any, index: number): string;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<DaisyUITabsComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<DaisyUITabsComponent, "tabs-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; }; "dataIndex": { "alias": "dataIndex"; "required": false; }; }, {}, never, never, false, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<DaisyUITabsComponent, "daisyui-tabs-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; }; "dataIndex": { "alias": "dataIndex"; "required": false; }; }, {}, never, never, false, never>;
20
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-formworks/daisyui",
3
- "version": "16.5.7",
3
+ "version": "16.6.0",
4
4
  "description": "Angular ng-formworks - JSON Schema Form builder using DaisyUI",
5
5
  "author": "https://github.com/zahmo/ng-formworks/graphs/contributors",
6
6
  "keywords": [
@@ -46,8 +46,8 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "tslib": "^2.3.0",
49
- "@ng-formworks/core": "~16.5.7",
50
- "@ng-formworks/cssframework": "~16.5.7"
49
+ "@ng-formworks/core": "~16.6.0",
50
+ "@ng-formworks/cssframework": "~16.6.0"
51
51
  },
52
52
  "sideEffects": false,
53
53
  "module": "fesm2022/ng-formworks-daisyui.mjs",
package/public-api.d.ts CHANGED
@@ -4,4 +4,5 @@ export * from './lib/daisyui-framework.prefixed.component';
4
4
  export * from './lib/daisyui-framework.service';
5
5
  export * from './lib/daisyui.framework';
6
6
  export * from './lib/tokens.defs';
7
+ export { DaisyUIOneOfComponent } from './lib/widgets/daisyui-one-of.component';
7
8
  export { DaisyUITabsComponent } from './lib/widgets/daisyui-tabs.component';
@@ -1,223 +0,0 @@
1
- export const cssFrameworkCfgDaisyUI = {
2
- "name": "daisyui",
3
- "text": "DaisyUI",
4
- "scripts": [],
5
- "stylesheets": [
6
- //"/assets/cssframework/daisyui-framework.css"
7
- ],
8
- "widgetstyles": {
9
- "__themes__": [
10
- { "name": "daisyui_default", "text": "default" },
11
- { "name": "light", "text": "light" },
12
- { "name": "dark", "text": "dark" },
13
- { "name": "cupcake", "text": "cupcake" },
14
- { "name": "cmyk", "text": "cmyk" },
15
- { "name": "pastel", "text": "pastel" },
16
- { "name": "daisyui_leaf", "text": "leaf" }
17
- ],
18
- "$ref": {
19
- "fieldHtmlClass": "btn btn-sm btn-accent float-right"
20
- },
21
- "__array_item_nonref__": {
22
- "htmlClass": "border shadow-md p-1"
23
- },
24
- "__form_group__": {
25
- "htmlClass": "mb-1"
26
- },
27
- "__control_label__": {
28
- "labelHtmlClass": "control-label"
29
- },
30
- "__active__": {
31
- "activeClass": "active"
32
- },
33
- "__required_asterisk__": "text-danger",
34
- "__screen_reader__": "sr-only",
35
- "__remove_item__": "float-right text-2xl opacity-50",
36
- "__help_block__": "help-block",
37
- "__field_addon_left__": "input-group-addon",
38
- "__field_addon_right__": "input-group-addon",
39
- "alt-date": {
40
- "fieldHtmlClass": "input input-md input-bordered w-full"
41
- },
42
- "alt-datetime": {
43
- "fieldHtmlClass": "input input-md input-bordered w-full"
44
- },
45
- "__array__": {
46
- "htmlClass": "border shadow-md p-1"
47
- },
48
- "array": {},
49
- "authfieldset": {},
50
- "advancedfieldset": {},
51
- "button": {
52
- "fieldHtmlClass": "btn btn-sm btn-info"
53
- },
54
- "checkbox": {
55
- "fieldHtmlClass": "checkbox"
56
- },
57
- "checkboxes": {
58
- "fieldHtmlClass": "checkbox"
59
- },
60
- "checkboxbuttons": {
61
- "fieldHtmlClass": "w-px",
62
- "labelHtmlClass": "tabs tabs-boxed",
63
- "htmlClass": "btn-group",
64
- "itemLabelHtmlClass": "btn",
65
- "activeClass": "btn-info"
66
- },
67
- "checkboxes-inline": {
68
- "fieldHtmlClass": "checkbox",
69
- "htmlClass": "inline-flex",
70
- "itemLabelHtmlClass": "checkbox-inline"
71
- },
72
- "date": {
73
- "fieldHtmlClass": "input input-md input-bordered w-full"
74
- },
75
- "datetime-local": {
76
- "fieldHtmlClass": "input input-md input-bordered w-full"
77
- },
78
- "fieldset": {},
79
- "integer": {
80
- "fieldHtmlClass": "input input-md input-bordered w-full max-w-xs"
81
- },
82
- "number": {
83
- "fieldHtmlClass": "input input-md input-bordered w-full max-w-xs"
84
- },
85
- "optionfieldset": {},
86
- "password": {
87
- "fieldHtmlClass": "input input-md input-bordered w-full"
88
- },
89
- "radiobuttons": {
90
- "fieldHtmlClass": "w-px",
91
- "labelHtmlClass": "tabs tabs-boxed",
92
- "htmlClass": "btn-group",
93
- "itemLabelHtmlClass": "btn",
94
- "activeClass": "btn-info"
95
- },
96
- "radio": {
97
- "fieldHtmlClass": "radio"
98
- },
99
- "radios": {
100
- "fieldHtmlClass": "radio"
101
- },
102
- "radios-inline": {
103
- "htmlClass": "inline-flex",
104
- "fieldHtmlClass": "radio",
105
- "itemLabelHtmlClass": "radio-inline"
106
- },
107
- "range": {
108
- "fieldHtmlClass": "range range-info"
109
- },
110
- "section": {},
111
- "selectfieldset": {},
112
- "select": {
113
- "fieldHtmlClass": "select select-md select-bordered w-full"
114
- },
115
- "submit": {
116
- "fieldHtmlClass": "btn btn-sm btn-info rounded-full"
117
- },
118
- "text": {
119
- "fieldHtmlClass": "input input-md input-bordered w-full"
120
- },
121
- "tabs": {
122
- "labelHtmlClass": "tabs-md tabs-boxed",
123
- "htmlClass": "",
124
- "itemLabelHtmlClass": "tab",
125
- "activeClass": "tab-active"
126
- },
127
- "tabarray": {
128
- "labelHtmlClass": "tabs tabs-boxed",
129
- "htmlClass": "",
130
- "itemLabelHtmlClass": "tab",
131
- "activeClass": "tab-active"
132
- },
133
- "textarea": {
134
- "fieldHtmlClass": "textarea textarea-bordered w-full"
135
- },
136
- "default": {
137
- "fieldHtmlClass": "form-control"
138
- }
139
- }
140
- };
141
- //need to classify which classnames are controlled by DaisyU and which
142
- //are controlled by tailwind
143
- //-ones controlled by tailwind will have prefix tw-{{class name}}
144
- //-ones controlled by daisyui will have prefix tw-dui-{{class name}}
145
- export function getCssFrameworkCfgPrefixed(cssFrameworkCfg, prefixDUI = "tw-dui", prefixTW = "tw") {
146
- let classNamesIgnored = [
147
- 'control-label',
148
- 'help-block', 'input-group-addon', 'checkbox-inline'
149
- ];
150
- //TODO use regexs
151
- //-regex won't work the actual prefix classname needs to be
152
- //available as string literals as tailwind seems to scans for the
153
- //actual names so for ex: 'tw-' + 'bg-primary' wont be picked up,
154
- //has to be 'tw-bg-primary'
155
- //NB this is not used in code, but need during the taiwind scanning
156
- //to output the class names
157
- let classNamesTW = [
158
- 'w-full', 'mb-1', 'shadow-md', 'p-1',
159
- 'sr-only', 'text-2xl', 'opacity-50',
160
- 'float-right',
161
- 'w-px',
162
- 'border',
163
- 'max-w-xs', 'rounded-full', 'form-control', 'inline-flex',
164
- 'tw-w-full', 'tw-mb-1', 'tw-shadow-md', 'tw-p-1',
165
- 'tw-sr-only', 'tw-text-2xl', 'tw-opacity-50',
166
- 'tw-float-right',
167
- 'tw-w-px',
168
- 'tw-max-w-xs', 'tw-rounded-full', 'tw-form-control', 'tw-inline-flex',
169
- 'tw-border'
170
- ];
171
- let classNamesDUI = [
172
- 'btn', 'btn-sm', 'btn-accent', 'btn-info', 'btn-group',
173
- 'input', 'input-md', 'input-bordered',
174
- 'checkbox', 'tab', 'tabs', 'tabs-boxed', 'tabs-md', "tab-active",
175
- 'radio', 'radio-inline',
176
- 'range', 'range-info',
177
- 'select', 'select-md', 'select-bordered',
178
- 'textarea', 'textarea-bordered'
179
- ];
180
- let replaceClasses = (classList, prefDUI, prefTW, ignoredClasses) => {
181
- if (!Array.isArray(classList)) {
182
- classList = classList.split(" ");
183
- }
184
- return classList.map(cname => {
185
- if (ignoredClasses.indexOf(cname) >= 0) {
186
- return cname;
187
- }
188
- if (classNamesDUI.indexOf(cname) >= 0) {
189
- return prefDUI + "-" + cname;
190
- }
191
- return prefTW + "-" + cname;
192
- });
193
- };
194
- let cssFrameworkCfgPrefixed = JSON.parse(JSON.stringify(cssFrameworkCfg));
195
- let widgetNamesIgnore = ["__themes__"];
196
- let widgetNamesNoSubLevel = [
197
- "__required_asterisk__",
198
- "__screen_reader__",
199
- "__remove_item__",
200
- "__help_block__",
201
- "__field_addon_left__",
202
- "__field_addon_right__",
203
- ];
204
- Object.keys(cssFrameworkCfgPrefixed.widgetstyles).forEach(widgetName => {
205
- if (widgetNamesIgnore.indexOf(widgetName) >= 0) {
206
- return;
207
- }
208
- if (widgetNamesNoSubLevel.indexOf(widgetName) >= 0) {
209
- let cnames = cssFrameworkCfgPrefixed.widgetstyles[widgetName];
210
- cnames = replaceClasses(cnames, prefixDUI, prefixTW, classNamesIgnored);
211
- cssFrameworkCfgPrefixed.widgetstyles[widgetName] = cnames;
212
- return;
213
- }
214
- let widgetClassMap = cssFrameworkCfgPrefixed.widgetstyles[widgetName];
215
- Object.keys(widgetClassMap).forEach(classListName => {
216
- let classListAsArr = widgetClassMap[classListName];
217
- classListAsArr = replaceClasses(classListAsArr, prefixDUI, prefixTW, classNamesIgnored);
218
- widgetClassMap[classListName] = classListAsArr;
219
- });
220
- });
221
- return cssFrameworkCfgPrefixed;
222
- }
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFpc3VpLWNzc2ZyYW1ld29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1kYWlzeXVpL3NyYy9saWIvZGFpc3VpLWNzc2ZyYW1ld29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUI7SUFDcEQsTUFBTSxFQUFFLFNBQVM7SUFDakIsTUFBTSxFQUFDLFNBQVM7SUFDaEIsU0FBUyxFQUFFLEVBQUU7SUFDYixhQUFhLEVBQUU7SUFDWCw4Q0FBOEM7S0FDakQ7SUFDRCxjQUFjLEVBQUU7UUFDWixZQUFZLEVBQUU7WUFDVixFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDO1lBQzNDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDO1lBQy9CLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDO1lBQzdCLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDO1lBQ25DLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDO1lBQzdCLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDO1lBQ2pDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDO1NBRXhDO1FBQ0QsTUFBTSxFQUFFO1lBQ0osZ0JBQWdCLEVBQUUsbUNBQW1DO1NBQ3hEO1FBQ0QsdUJBQXVCLEVBQUU7WUFDckIsV0FBVyxFQUFFLHNCQUFzQjtTQUN0QztRQUNELGdCQUFnQixFQUFFO1lBQ2QsV0FBVyxFQUFFLE1BQU07U0FDdEI7UUFDRCxtQkFBbUIsRUFBRTtZQUNqQixnQkFBZ0IsRUFBRSxlQUFlO1NBQ3BDO1FBQ0QsWUFBWSxFQUFFO1lBQ1YsYUFBYSxFQUFFLFFBQVE7U0FDMUI7UUFDRCx1QkFBdUIsRUFBRSxhQUFhO1FBQ3RDLG1CQUFtQixFQUFFLFNBQVM7UUFDOUIsaUJBQWlCLEVBQUUsaUNBQWlDO1FBQ3BELGdCQUFnQixFQUFFLFlBQVk7UUFDOUIsc0JBQXNCLEVBQUUsbUJBQW1CO1FBQzNDLHVCQUF1QixFQUFFLG1CQUFtQjtRQUM1QyxVQUFVLEVBQUU7WUFDUixnQkFBZ0IsRUFBRSxzQ0FBc0M7U0FDM0Q7UUFDRCxjQUFjLEVBQUU7WUFDWixnQkFBZ0IsRUFBRSxzQ0FBc0M7U0FDM0Q7UUFDRCxXQUFXLEVBQUU7WUFDVCxXQUFXLEVBQUUsc0JBQXNCO1NBQ3RDO1FBQ0QsT0FBTyxFQUFFLEVBQUU7UUFDWCxjQUFjLEVBQUUsRUFBRTtRQUNsQixrQkFBa0IsRUFBRSxFQUFFO1FBQ3RCLFFBQVEsRUFBRTtZQUNOLGdCQUFnQixFQUFFLHFCQUFxQjtTQUMxQztRQUNELFVBQVUsRUFBRTtZQUNSLGdCQUFnQixFQUFFLFVBQVU7U0FDL0I7UUFDRCxZQUFZLEVBQUU7WUFDVixnQkFBZ0IsRUFBRSxVQUFVO1NBQy9CO1FBQ0QsaUJBQWlCLEVBQUU7WUFDZixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxXQUFXLEVBQUUsV0FBVztZQUN4QixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLGFBQWEsRUFBRSxVQUFVO1NBQzVCO1FBQ0QsbUJBQW1CLEVBQUU7WUFDakIsZ0JBQWdCLEVBQUUsVUFBVTtZQUM1QixXQUFXLEVBQUUsYUFBYTtZQUMxQixvQkFBb0IsRUFBRSxpQkFBaUI7U0FDMUM7UUFDRCxNQUFNLEVBQUU7WUFDSixnQkFBZ0IsRUFBRSxzQ0FBc0M7U0FDM0Q7UUFDRCxnQkFBZ0IsRUFBRTtZQUNkLGdCQUFnQixFQUFFLHNDQUFzQztTQUMzRDtRQUNELFVBQVUsRUFBRSxFQUFFO1FBQ2QsU0FBUyxFQUFFO1lBQ1AsZ0JBQWdCLEVBQUUsK0NBQStDO1NBQ3BFO1FBQ0QsUUFBUSxFQUFFO1lBQ04sZ0JBQWdCLEVBQUUsK0NBQStDO1NBQ3BFO1FBQ0QsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixVQUFVLEVBQUU7WUFDUixnQkFBZ0IsRUFBRSxzQ0FBc0M7U0FDM0Q7UUFDRCxjQUFjLEVBQUU7WUFDWixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxXQUFXLEVBQUUsV0FBVztZQUN4QixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLGFBQWEsRUFBRSxVQUFVO1NBQzVCO1FBQ0QsT0FBTyxFQUFFO1lBQ0wsZ0JBQWdCLEVBQUUsT0FBTztTQUM1QjtRQUNELFFBQVEsRUFBRTtZQUNOLGdCQUFnQixFQUFFLE9BQU87U0FDNUI7UUFDRCxlQUFlLEVBQUU7WUFDYixXQUFXLEVBQUUsYUFBYTtZQUMxQixnQkFBZ0IsRUFBRSxPQUFPO1lBQ3pCLG9CQUFvQixFQUFFLGNBQWM7U0FDdkM7UUFDRCxPQUFPLEVBQUU7WUFDTCxnQkFBZ0IsRUFBRSxrQkFBa0I7U0FDdkM7UUFDRCxTQUFTLEVBQUUsRUFBRTtRQUNiLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsUUFBUSxFQUFFO1lBQ04sZ0JBQWdCLEVBQUUseUNBQXlDO1NBQzlEO1FBQ0QsUUFBUSxFQUFFO1lBQ04sZ0JBQWdCLEVBQUUsa0NBQWtDO1NBQ3ZEO1FBQ0QsTUFBTSxFQUFFO1lBQ0osZ0JBQWdCLEVBQUUsc0NBQXNDO1NBQzNEO1FBQ0QsTUFBTSxFQUFFO1lBQ0osZ0JBQWdCLEVBQUUsb0JBQW9CO1lBQ3RDLFdBQVcsRUFBRSxFQUFFO1lBQ2Ysb0JBQW9CLEVBQUUsS0FBSztZQUMzQixhQUFhLEVBQUUsWUFBWTtTQUM5QjtRQUNELFVBQVUsRUFBRTtZQUNSLGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxXQUFXLEVBQUUsRUFBRTtZQUNmLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsYUFBYSxFQUFFLFlBQVk7U0FDOUI7UUFDRCxVQUFVLEVBQUU7WUFDUixnQkFBZ0IsRUFBRSxtQ0FBbUM7U0FDeEQ7UUFDRCxTQUFTLEVBQUU7WUFDUCxnQkFBZ0IsRUFBRSxjQUFjO1NBQ25DO0tBQ0o7Q0FDSixDQUFBO0FBQ0Qsc0VBQXNFO0FBQ3RFLDRCQUE0QjtBQUM1QixpRUFBaUU7QUFDakUsb0VBQW9FO0FBQ3BFLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxlQUFtQyxFQUFDLFNBQVMsR0FBQyxRQUFRLEVBQUMsUUFBUSxHQUFDLElBQUk7SUFFM0csSUFBSSxpQkFBaUIsR0FBQztRQUVsQixlQUFlO1FBQ2YsWUFBWSxFQUFDLG1CQUFtQixFQUFDLGlCQUFpQjtLQUVyRCxDQUFDO0lBRUYsaUJBQWlCO0lBQ2pCLDREQUE0RDtJQUM1RCxpRUFBaUU7SUFDakUsaUVBQWlFO0lBQ2pFLDJCQUEyQjtJQUUzQixvRUFBb0U7SUFDcEUsMkJBQTJCO0lBQzNCLElBQUksWUFBWSxHQUFDO1FBQ2IsUUFBUSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsS0FBSztRQUNqQyxTQUFTLEVBQUMsVUFBVSxFQUFFLFlBQVk7UUFDbEMsYUFBYTtRQUNiLE1BQU07UUFDTixRQUFRO1FBQ1IsVUFBVSxFQUFDLGNBQWMsRUFBQyxjQUFjLEVBQUMsYUFBYTtRQUN0RCxXQUFXLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxRQUFRO1FBQzdDLFlBQVksRUFBQyxhQUFhLEVBQUUsZUFBZTtRQUMzQyxnQkFBZ0I7UUFDaEIsU0FBUztRQUNULGFBQWEsRUFBQyxpQkFBaUIsRUFBQyxpQkFBaUIsRUFBQyxnQkFBZ0I7UUFDbEUsV0FBVztLQUVkLENBQUM7SUFFRixJQUFJLGFBQWEsR0FBQztRQUNkLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDLFVBQVUsRUFBQyxXQUFXO1FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCO1FBQ3JDLFVBQVUsRUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBQyxTQUFTLEVBQUMsWUFBWTtRQUM1RCxPQUFPLEVBQUMsY0FBYztRQUN0QixPQUFPLEVBQUUsWUFBWTtRQUNyQixRQUFRLEVBQUUsV0FBVyxFQUFFLGlCQUFpQjtRQUN4QyxVQUFVLEVBQUMsbUJBQW1CO0tBRWpDLENBQUM7SUFDRixJQUFJLGNBQWMsR0FBQyxDQUFDLFNBQXlCLEVBQUMsT0FBYyxFQUFDLE1BQWEsRUFBQyxjQUF1QixFQUFDLEVBQUU7UUFDakcsSUFBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUM7WUFDekIsU0FBUyxHQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEM7UUFDRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFBLEVBQUU7WUFDeEIsSUFBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFFLENBQUMsRUFBQztnQkFDaEMsT0FBTyxLQUFLLENBQUM7YUFDaEI7WUFDRCxJQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUMvQixPQUFPLE9BQU8sR0FBQyxHQUFHLEdBQUMsS0FBSyxDQUFDO2FBQzVCO1lBQ0QsT0FBTyxNQUFNLEdBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQTtJQUVELElBQUksdUJBQXVCLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxpQkFBaUIsR0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLElBQUkscUJBQXFCLEdBQUM7UUFDdEIsdUJBQXVCO1FBQ3ZCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLHNCQUFzQjtRQUN0Qix1QkFBdUI7S0FDMUIsQ0FBQztJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQSxFQUFFO1FBQ2xFLElBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFFLENBQUMsRUFBQztZQUN4QyxPQUFPO1NBQ1Y7UUFDRCxJQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBRSxDQUFDLEVBQUM7WUFDN0MsSUFBSSxNQUFNLEdBQUUsdUJBQXVCLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sR0FBQyxjQUFjLENBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNuRSx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUMsTUFBTSxDQUFDO1lBQ3hELE9BQU87U0FDVDtRQUNELElBQUksY0FBYyxHQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUEsRUFBRTtZQUMvQyxJQUFJLGNBQWMsR0FBaUIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pFLGNBQWMsR0FBQyxjQUFjLENBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNuRixjQUFjLENBQUMsYUFBYSxDQUFDLEdBQUMsY0FBYyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFBO0lBRU4sQ0FBQyxDQUFDLENBQUE7SUFDRixPQUFPLHVCQUF1QixDQUFDO0FBRW5DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3NfZncgfSBmcm9tIFwiQG5nLWZvcm13b3Jrcy9jc3NmcmFtZXdvcmtcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBjc3NGcmFtZXdvcmtDZmdEYWlzeVVJOmNzc19mdy5mcmFtZXdvcmtjZmc9e1xyXG4gICAgXCJuYW1lXCI6IFwiZGFpc3l1aVwiLFxyXG4gICAgXCJ0ZXh0XCI6XCJEYWlzeVVJXCIsXHJcbiAgICBcInNjcmlwdHNcIjogW10sXHJcbiAgICBcInN0eWxlc2hlZXRzXCI6IFtcclxuICAgICAgICAvL1wiL2Fzc2V0cy9jc3NmcmFtZXdvcmsvZGFpc3l1aS1mcmFtZXdvcmsuY3NzXCJcclxuICAgIF0sXHJcbiAgICBcIndpZGdldHN0eWxlc1wiOiB7XHJcbiAgICAgICAgXCJfX3RoZW1lc19fXCI6IFtcclxuICAgICAgICAgICAge1wibmFtZVwiOlwiZGFpc3l1aV9kZWZhdWx0XCIsXCJ0ZXh0XCI6XCJkZWZhdWx0XCJ9LFxyXG4gICAgICAgICAgICB7XCJuYW1lXCI6XCJsaWdodFwiLFwidGV4dFwiOlwibGlnaHRcIn0sIFxyXG4gICAgICAgICAgICB7XCJuYW1lXCI6XCJkYXJrXCIsXCJ0ZXh0XCI6XCJkYXJrXCJ9LCBcclxuICAgICAgICAgICAge1wibmFtZVwiOlwiY3VwY2FrZVwiLFwidGV4dFwiOlwiY3VwY2FrZVwifSwgXHJcbiAgICAgICAgICAgIHtcIm5hbWVcIjpcImNteWtcIixcInRleHRcIjpcImNteWtcIn0sIFxyXG4gICAgICAgICAgICB7XCJuYW1lXCI6XCJwYXN0ZWxcIixcInRleHRcIjpcInBhc3RlbFwifSxcclxuICAgICAgICAgICAge1wibmFtZVwiOlwiZGFpc3l1aV9sZWFmXCIsXCJ0ZXh0XCI6XCJsZWFmXCJ9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgXCIkcmVmXCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcImJ0biBidG4tc20gYnRuLWFjY2VudCBmbG9hdC1yaWdodFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIl9fYXJyYXlfaXRlbV9ub25yZWZfX1wiOiB7XHJcbiAgICAgICAgICAgIFwiaHRtbENsYXNzXCI6IFwiYm9yZGVyIHNoYWRvdy1tZCBwLTFcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJfX2Zvcm1fZ3JvdXBfX1wiOiB7XHJcbiAgICAgICAgICAgIFwiaHRtbENsYXNzXCI6IFwibWItMVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIl9fY29udHJvbF9sYWJlbF9fXCI6IHtcclxuICAgICAgICAgICAgXCJsYWJlbEh0bWxDbGFzc1wiOiBcImNvbnRyb2wtbGFiZWxcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJfX2FjdGl2ZV9fXCI6IHtcclxuICAgICAgICAgICAgXCJhY3RpdmVDbGFzc1wiOiBcImFjdGl2ZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIl9fcmVxdWlyZWRfYXN0ZXJpc2tfX1wiOiBcInRleHQtZGFuZ2VyXCIsXHJcbiAgICAgICAgXCJfX3NjcmVlbl9yZWFkZXJfX1wiOiBcInNyLW9ubHlcIixcclxuICAgICAgICBcIl9fcmVtb3ZlX2l0ZW1fX1wiOiBcImZsb2F0LXJpZ2h0IHRleHQtMnhsIG9wYWNpdHktNTBcIixcclxuICAgICAgICBcIl9faGVscF9ibG9ja19fXCI6IFwiaGVscC1ibG9ja1wiLFxyXG4gICAgICAgIFwiX19maWVsZF9hZGRvbl9sZWZ0X19cIjogXCJpbnB1dC1ncm91cC1hZGRvblwiLFxyXG4gICAgICAgIFwiX19maWVsZF9hZGRvbl9yaWdodF9fXCI6IFwiaW5wdXQtZ3JvdXAtYWRkb25cIixcclxuICAgICAgICBcImFsdC1kYXRlXCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcImlucHV0IGlucHV0LW1kIGlucHV0LWJvcmRlcmVkIHctZnVsbFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImFsdC1kYXRldGltZVwiOiB7XHJcbiAgICAgICAgICAgIFwiZmllbGRIdG1sQ2xhc3NcIjogXCJpbnB1dCBpbnB1dC1tZCBpbnB1dC1ib3JkZXJlZCB3LWZ1bGxcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJfX2FycmF5X19cIjoge1xyXG4gICAgICAgICAgICBcImh0bWxDbGFzc1wiOiBcImJvcmRlciBzaGFkb3ctbWQgcC0xXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwiYXJyYXlcIjoge30sXHJcbiAgICAgICAgXCJhdXRoZmllbGRzZXRcIjoge30sXHJcbiAgICAgICAgXCJhZHZhbmNlZGZpZWxkc2V0XCI6IHt9LFxyXG4gICAgICAgIFwiYnV0dG9uXCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcImJ0biBidG4tc20gYnRuLWluZm9cIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJjaGVja2JveFwiOiB7XHJcbiAgICAgICAgICAgIFwiZmllbGRIdG1sQ2xhc3NcIjogXCJjaGVja2JveFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImNoZWNrYm94ZXNcIjoge1xyXG4gICAgICAgICAgICBcImZpZWxkSHRtbENsYXNzXCI6IFwiY2hlY2tib3hcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJjaGVja2JveGJ1dHRvbnNcIjoge1xyXG4gICAgICAgICAgICBcImZpZWxkSHRtbENsYXNzXCI6IFwidy1weFwiLFxyXG4gICAgICAgICAgICBcImxhYmVsSHRtbENsYXNzXCI6IFwidGFicyB0YWJzLWJveGVkXCIsXHJcbiAgICAgICAgICAgIFwiaHRtbENsYXNzXCI6IFwiYnRuLWdyb3VwXCIsXHJcbiAgICAgICAgICAgIFwiaXRlbUxhYmVsSHRtbENsYXNzXCI6IFwiYnRuXCIsXHJcbiAgICAgICAgICAgIFwiYWN0aXZlQ2xhc3NcIjogXCJidG4taW5mb1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImNoZWNrYm94ZXMtaW5saW5lXCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcImNoZWNrYm94XCIsXHJcbiAgICAgICAgICAgIFwiaHRtbENsYXNzXCI6IFwiaW5saW5lLWZsZXhcIixcclxuICAgICAgICAgICAgXCJpdGVtTGFiZWxIdG1sQ2xhc3NcIjogXCJjaGVja2JveC1pbmxpbmVcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkYXRlXCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcImlucHV0IGlucHV0LW1kIGlucHV0LWJvcmRlcmVkIHctZnVsbFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImRhdGV0aW1lLWxvY2FsXCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcImlucHV0IGlucHV0LW1kIGlucHV0LWJvcmRlcmVkIHctZnVsbFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImZpZWxkc2V0XCI6IHt9LFxyXG4gICAgICAgIFwiaW50ZWdlclwiOiB7XHJcbiAgICAgICAgICAgIFwiZmllbGRIdG1sQ2xhc3NcIjogXCJpbnB1dCBpbnB1dC1tZCBpbnB1dC1ib3JkZXJlZCB3LWZ1bGwgbWF4LXcteHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJudW1iZXJcIjoge1xyXG4gICAgICAgICAgICBcImZpZWxkSHRtbENsYXNzXCI6IFwiaW5wdXQgaW5wdXQtbWQgaW5wdXQtYm9yZGVyZWQgdy1mdWxsIG1heC13LXhzXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwib3B0aW9uZmllbGRzZXRcIjoge30sXHJcbiAgICAgICAgXCJwYXNzd29yZFwiOiB7XHJcbiAgICAgICAgICAgIFwiZmllbGRIdG1sQ2xhc3NcIjogXCJpbnB1dCBpbnB1dC1tZCBpbnB1dC1ib3JkZXJlZCB3LWZ1bGxcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJyYWRpb2J1dHRvbnNcIjoge1xyXG4gICAgICAgICAgICBcImZpZWxkSHRtbENsYXNzXCI6IFwidy1weFwiLFxyXG4gICAgICAgICAgICBcImxhYmVsSHRtbENsYXNzXCI6IFwidGFicyB0YWJzLWJveGVkXCIsXHJcbiAgICAgICAgICAgIFwiaHRtbENsYXNzXCI6IFwiYnRuLWdyb3VwXCIsXHJcbiAgICAgICAgICAgIFwiaXRlbUxhYmVsSHRtbENsYXNzXCI6IFwiYnRuXCIsXHJcbiAgICAgICAgICAgIFwiYWN0aXZlQ2xhc3NcIjogXCJidG4taW5mb1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcInJhZGlvXCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcInJhZGlvXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwicmFkaW9zXCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcInJhZGlvXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwicmFkaW9zLWlubGluZVwiOiB7XHJcbiAgICAgICAgICAgIFwiaHRtbENsYXNzXCI6IFwiaW5saW5lLWZsZXhcIixcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcInJhZGlvXCIsXHJcbiAgICAgICAgICAgIFwiaXRlbUxhYmVsSHRtbENsYXNzXCI6IFwicmFkaW8taW5saW5lXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwicmFuZ2VcIjoge1xyXG4gICAgICAgICAgICBcImZpZWxkSHRtbENsYXNzXCI6IFwicmFuZ2UgcmFuZ2UtaW5mb1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcInNlY3Rpb25cIjoge30sXHJcbiAgICAgICAgXCJzZWxlY3RmaWVsZHNldFwiOiB7fSxcclxuICAgICAgICBcInNlbGVjdFwiOiB7XHJcbiAgICAgICAgICAgIFwiZmllbGRIdG1sQ2xhc3NcIjogXCJzZWxlY3Qgc2VsZWN0LW1kIHNlbGVjdC1ib3JkZXJlZCB3LWZ1bGxcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJzdWJtaXRcIjoge1xyXG4gICAgICAgICAgICBcImZpZWxkSHRtbENsYXNzXCI6IFwiYnRuIGJ0bi1zbSBidG4taW5mbyByb3VuZGVkLWZ1bGxcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJ0ZXh0XCI6IHtcclxuICAgICAgICAgICAgXCJmaWVsZEh0bWxDbGFzc1wiOiBcImlucHV0IGlucHV0LW1kIGlucHV0LWJvcmRlcmVkIHctZnVsbFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcInRhYnNcIjoge1xyXG4gICAgICAgICAgICBcImxhYmVsSHRtbENsYXNzXCI6IFwidGFicy1tZCB0YWJzLWJveGVkXCIsXHJcbiAgICAgICAgICAgIFwiaHRtbENsYXNzXCI6IFwiXCIsXHJcbiAgICAgICAgICAgIFwiaXRlbUxhYmVsSHRtbENsYXNzXCI6IFwidGFiXCIsXHJcbiAgICAgICAgICAgIFwiYWN0aXZlQ2xhc3NcIjogXCJ0YWItYWN0aXZlXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwidGFiYXJyYXlcIjoge1xyXG4gICAgICAgICAgICBcImxhYmVsSHRtbENsYXNzXCI6IFwidGFicyB0YWJzLWJveGVkXCIsXHJcbiAgICAgICAgICAgIFwiaHRtbENsYXNzXCI6IFwiXCIsXHJcbiAgICAgICAgICAgIFwiaXRlbUxhYmVsSHRtbENsYXNzXCI6IFwidGFiXCIsXHJcbiAgICAgICAgICAgIFwiYWN0aXZlQ2xhc3NcIjogXCJ0YWItYWN0aXZlXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwidGV4dGFyZWFcIjoge1xyXG4gICAgICAgICAgICBcImZpZWxkSHRtbENsYXNzXCI6IFwidGV4dGFyZWEgdGV4dGFyZWEtYm9yZGVyZWQgdy1mdWxsXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwiZGVmYXVsdFwiOiB7XHJcbiAgICAgICAgICAgIFwiZmllbGRIdG1sQ2xhc3NcIjogXCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vL25lZWQgdG8gY2xhc3NpZnkgd2hpY2ggY2xhc3NuYW1lcyBhcmUgY29udHJvbGxlZCBieSBEYWlzeVUgYW5kIHdoaWNoXHJcbi8vYXJlIGNvbnRyb2xsZWQgYnkgdGFpbHdpbmRcclxuLy8tb25lcyBjb250cm9sbGVkIGJ5IHRhaWx3aW5kIHdpbGwgaGF2ZSBwcmVmaXggdHcte3tjbGFzcyBuYW1lfX1cclxuLy8tb25lcyBjb250cm9sbGVkIGJ5IGRhaXN5dWkgd2lsbCBoYXZlIHByZWZpeCB0dy1kdWkte3tjbGFzcyBuYW1lfX1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENzc0ZyYW1ld29ya0NmZ1ByZWZpeGVkKGNzc0ZyYW1ld29ya0NmZzpjc3NfZncuZnJhbWV3b3JrY2ZnLHByZWZpeERVST1cInR3LWR1aVwiLHByZWZpeFRXPVwidHdcIik6Y3NzX2Z3LmZyYW1ld29ya2NmZ3tcclxuICAgIFxyXG4gICAgbGV0IGNsYXNzTmFtZXNJZ25vcmVkPVtcclxuICAgICAgICBcclxuICAgICAgICAnY29udHJvbC1sYWJlbCcsXHJcbiAgICAgICAgJ2hlbHAtYmxvY2snLCdpbnB1dC1ncm91cC1hZGRvbicsJ2NoZWNrYm94LWlubGluZSdcclxuICAgICAgICBcclxuICAgIF07XHJcblxyXG4gICAgLy9UT0RPIHVzZSByZWdleHNcclxuICAgIC8vLXJlZ2V4IHdvbid0IHdvcmsgdGhlIGFjdHVhbCBwcmVmaXggY2xhc3NuYW1lIG5lZWRzIHRvIGJlIFxyXG4gICAgLy9hdmFpbGFibGUgYXMgc3RyaW5nIGxpdGVyYWxzIGFzIHRhaWx3aW5kIHNlZW1zIHRvIHNjYW5zIGZvciB0aGVcclxuICAgIC8vYWN0dWFsIG5hbWVzIHNvIGZvciBleDogJ3R3LScgKyAnYmctcHJpbWFyeScgd29udCBiZSBwaWNrZWQgdXAsXHJcbiAgICAvL2hhcyB0byBiZSAndHctYmctcHJpbWFyeSdcclxuXHJcbiAgICAvL05CIHRoaXMgaXMgbm90IHVzZWQgaW4gY29kZSwgYnV0IG5lZWQgZHVyaW5nIHRoZSB0YWl3aW5kIHNjYW5uaW5nIFxyXG4gICAgLy90byBvdXRwdXQgdGhlIGNsYXNzIG5hbWVzXHJcbiAgICBsZXQgY2xhc3NOYW1lc1RXPVtcclxuICAgICAgICAndy1mdWxsJywnbWItMScsJ3NoYWRvdy1tZCcsJ3AtMScsXHJcbiAgICAgICAgJ3NyLW9ubHknLCd0ZXh0LTJ4bCcsICdvcGFjaXR5LTUwJyxcclxuICAgICAgICAnZmxvYXQtcmlnaHQnLFxyXG4gICAgICAgICd3LXB4JyxcclxuICAgICAgICAnYm9yZGVyJyxcclxuICAgICAgICAnbWF4LXcteHMnLCdyb3VuZGVkLWZ1bGwnLCdmb3JtLWNvbnRyb2wnLCdpbmxpbmUtZmxleCcsXHJcbiAgICAgICAgJ3R3LXctZnVsbCcsJ3R3LW1iLTEnLCd0dy1zaGFkb3ctbWQnLCd0dy1wLTEnLFxyXG4gICAgICAgICd0dy1zci1vbmx5JywndHctdGV4dC0yeGwnLCAndHctb3BhY2l0eS01MCcsXHJcbiAgICAgICAgJ3R3LWZsb2F0LXJpZ2h0JyxcclxuICAgICAgICAndHctdy1weCcsXHJcbiAgICAgICAgJ3R3LW1heC13LXhzJywndHctcm91bmRlZC1mdWxsJywndHctZm9ybS1jb250cm9sJywndHctaW5saW5lLWZsZXgnLFxyXG4gICAgICAgICd0dy1ib3JkZXInXHJcbiAgICAgICAgXHJcbiAgICBdO1xyXG5cclxuICAgIGxldCBjbGFzc05hbWVzRFVJPVtcclxuICAgICAgICAnYnRuJywgJ2J0bi1zbScsICdidG4tYWNjZW50JywnYnRuLWluZm8nLCdidG4tZ3JvdXAnLFxyXG4gICAgICAgICdpbnB1dCcsICdpbnB1dC1tZCcgLCdpbnB1dC1ib3JkZXJlZCcsXHJcbiAgICAgICAgJ2NoZWNrYm94JywndGFiJywndGFicycsICd0YWJzLWJveGVkJywndGFicy1tZCcsXCJ0YWItYWN0aXZlXCIsXHJcbiAgICAgICAgJ3JhZGlvJywncmFkaW8taW5saW5lJyxcclxuICAgICAgICAncmFuZ2UnLCAncmFuZ2UtaW5mbycsXHJcbiAgICAgICAgJ3NlbGVjdCcsICdzZWxlY3QtbWQnLCAnc2VsZWN0LWJvcmRlcmVkJyxcclxuICAgICAgICAndGV4dGFyZWEnLCd0ZXh0YXJlYS1ib3JkZXJlZCdcclxuICAgICAgICBcclxuICAgIF07XHJcbiAgICBsZXQgcmVwbGFjZUNsYXNzZXM9KGNsYXNzTGlzdDpzdHJpbmdbXXxzdHJpbmcscHJlZkRVSTpzdHJpbmcscHJlZlRXOnN0cmluZyxpZ25vcmVkQ2xhc3NlczpzdHJpbmdbXSk9PntcclxuICAgICAgICBpZighQXJyYXkuaXNBcnJheShjbGFzc0xpc3QpKXtcclxuICAgICAgICAgICAgY2xhc3NMaXN0PWNsYXNzTGlzdC5zcGxpdChcIiBcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjbGFzc0xpc3QubWFwKGNuYW1lPT57XHJcbiAgICAgICAgICAgIGlmKGlnbm9yZWRDbGFzc2VzLmluZGV4T2YoY25hbWUpPj0wKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjbmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihjbGFzc05hbWVzRFVJLmluZGV4T2YoY25hbWUpPj0wKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwcmVmRFVJK1wiLVwiK2NuYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBwcmVmVFcrXCItXCIrY25hbWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGxldCBjc3NGcmFtZXdvcmtDZmdQcmVmaXhlZD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNzc0ZyYW1ld29ya0NmZykpO1xyXG4gICAgbGV0IHdpZGdldE5hbWVzSWdub3JlPVtcIl9fdGhlbWVzX19cIl07XHJcbiAgICBsZXQgd2lkZ2V0TmFtZXNOb1N1YkxldmVsPVtcclxuICAgICAgICBcIl9fcmVxdWlyZWRfYXN0ZXJpc2tfX1wiLFxyXG4gICAgICAgIFwiX19zY3JlZW5fcmVhZGVyX19cIixcclxuICAgICAgICBcIl9fcmVtb3ZlX2l0ZW1fX1wiLFxyXG4gICAgICAgIFwiX19oZWxwX2Jsb2NrX19cIixcclxuICAgICAgICBcIl9fZmllbGRfYWRkb25fbGVmdF9fXCIsXHJcbiAgICAgICAgXCJfX2ZpZWxkX2FkZG9uX3JpZ2h0X19cIixcclxuICAgIF07XHJcbiAgICBPYmplY3Qua2V5cyhjc3NGcmFtZXdvcmtDZmdQcmVmaXhlZC53aWRnZXRzdHlsZXMpLmZvckVhY2god2lkZ2V0TmFtZT0+e1xyXG4gICAgICAgIGlmKHdpZGdldE5hbWVzSWdub3JlLmluZGV4T2Yod2lkZ2V0TmFtZSk+PTApe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHdpZGdldE5hbWVzTm9TdWJMZXZlbC5pbmRleE9mKHdpZGdldE5hbWUpPj0wKXtcclxuICAgICAgICAgICBsZXQgY25hbWVzPSBjc3NGcmFtZXdvcmtDZmdQcmVmaXhlZC53aWRnZXRzdHlsZXNbd2lkZ2V0TmFtZV07XHJcbiAgICAgICAgICAgY25hbWVzPXJlcGxhY2VDbGFzc2VzKGNuYW1lcyxwcmVmaXhEVUkscHJlZml4VFcsY2xhc3NOYW1lc0lnbm9yZWQpO1xyXG4gICAgICAgICAgIGNzc0ZyYW1ld29ya0NmZ1ByZWZpeGVkLndpZGdldHN0eWxlc1t3aWRnZXROYW1lXT1jbmFtZXM7XHJcbiAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgd2lkZ2V0Q2xhc3NNYXA9Y3NzRnJhbWV3b3JrQ2ZnUHJlZml4ZWQud2lkZ2V0c3R5bGVzW3dpZGdldE5hbWVdO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHdpZGdldENsYXNzTWFwKS5mb3JFYWNoKGNsYXNzTGlzdE5hbWU9PntcclxuICAgICAgICAgICAgbGV0IGNsYXNzTGlzdEFzQXJyOnN0cmluZ1tdfHN0cmluZz13aWRnZXRDbGFzc01hcFtjbGFzc0xpc3ROYW1lXTtcclxuICAgICAgICAgICAgY2xhc3NMaXN0QXNBcnI9cmVwbGFjZUNsYXNzZXMoY2xhc3NMaXN0QXNBcnIscHJlZml4RFVJLHByZWZpeFRXLGNsYXNzTmFtZXNJZ25vcmVkKTtcclxuICAgICAgICAgICAgd2lkZ2V0Q2xhc3NNYXBbY2xhc3NMaXN0TmFtZV09Y2xhc3NMaXN0QXNBcnI7XHJcbiAgICAgICAgfSlcclxuICAgICAgICBcclxuICAgIH0pXHJcbiAgICByZXR1cm4gY3NzRnJhbWV3b3JrQ2ZnUHJlZml4ZWQ7XHJcblxyXG59XHJcblxyXG4iXX0=