UNPKG

cmsmon

Version:
1,360 lines (988 loc) 212 kB
/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function($) {'use strict'; var _angular = __webpack_require__(3); var _angular2 = _interopRequireDefault(_angular); __webpack_require__(4); __webpack_require__(1); var _printthis = __webpack_require__(5); var _printthis2 = _interopRequireDefault(_printthis); __webpack_require__(6); var _unionWith = __webpack_require__(7); var _unionWith2 = _interopRequireDefault(_unionWith); var _pickBy = __webpack_require__(8); var _pickBy2 = _interopRequireDefault(_pickBy); var _moment2 = __webpack_require__(9); var _moment3 = _interopRequireDefault(_moment2); var _jsonFn = __webpack_require__(10); var _jsonFn2 = _interopRequireDefault(_jsonFn); __webpack_require__(11); var _components = __webpack_require__(12); var _components2 = _interopRequireDefault(_components); var _common = __webpack_require__(100); var _common2 = _interopRequireDefault(_common); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } window.angular = _angular2.default; window.printthis = _printthis2.default; $.fn.printthis = _printthis2.default; _.unionWith = _unionWith2.default; _.pickBy = _pickBy2.default; window.moment = _moment3.default; window.JsonFn = _jsonFn2.default; _jsonFn2.default.stringify = function (obj) { return JSON.stringify(obj, function (key, value) { var fnBody; if (value instanceof Function || typeof value == 'function') { fnBody = value.toString(); if (fnBody.length < 8 || fnBody.substring(0, 8) !== 'function') { //this is ES6 Arrow Function return '_NuFrRa_' + fnBody; } return fnBody; } if (value instanceof RegExp) { return '_PxEgEr_' + value; } if (typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$') { value = undefined; } if (key === '$order') { value = undefined; } if (value && value.hasOwnProperty('isObjectId')) { value = value._id; } return value; }); }; _jsonFn2.default.parse = function (str, date2obj) { var iso8061 = date2obj ? /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/ : false; return JSON.parse(str, function (key, value) { var prefix; if (typeof value != 'string') { return value; } if (value.length < 8) { return value; } prefix = value.substring(0, 8); if (iso8061 && value.match(iso8061)) { return new Date(value); } if (prefix === 'function') { try { return eval('(' + value + ')'); } catch (e) {} } if (prefix === '_PxEgEr_') { return eval(value.slice(8)); } if (prefix === '_NuFrRa_') { try { return eval(value.slice(8)); } catch (e) {} } return value; }); }; window._transform = { transformResponse: function transformResponse(d) { return JsonFn.parse(d); } }; _angular2.default.module('app', [_common2.default, _components2.default]).config(['$compileProvider', function ($compileProvider) { $compileProvider.debugInfoEnabled(false); }]).controller('appCtrl', function () {}); _angular2.default.element(document).ready(function () { _angular2.default.bootstrap(document, ['app']); }); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }, /* 1 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(1); /***/ }, /* 2 */ /***/ function(module, exports) { module.exports = lib_lib; /***/ }, /* 3 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(2); /***/ }, /* 4 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(44); /***/ }, /* 5 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(334); /***/ }, /* 6 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(60); /***/ }, /* 7 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(78); /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(154); /***/ }, /* 9 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(333); /***/ }, /* 10 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(231); /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(232); /***/ }, /* 12 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _module = __webpack_require__(13); var _module2 = _interopRequireDefault(_module); var _module3 = __webpack_require__(114); var _module4 = _interopRequireDefault(_module3); var _module5 = __webpack_require__(117); var _module6 = _interopRequireDefault(_module5); var _module7 = __webpack_require__(133); var _module8 = _interopRequireDefault(_module7); var _module9 = __webpack_require__(135); var _module10 = _interopRequireDefault(_module9); var _module11 = __webpack_require__(137); var _module12 = _interopRequireDefault(_module11); var _module13 = __webpack_require__(145); var _module14 = _interopRequireDefault(_module13); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var components = angular.module('components', [_module4.default, _module6.default, _module8.default, _module10.default, _module12.default, _module14.default]); exports.default = components.name; /***/ }, /* 13 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); __webpack_require__(14); var _editableFormly = __webpack_require__(15); var _editableFormly2 = _interopRequireDefault(_editableFormly); var _module2 = __webpack_require__(16); var _module3 = _interopRequireDefault(_module2); var _tpl = __webpack_require__(99); var _tpl2 = _interopRequireDefault(_tpl); var _common = __webpack_require__(100); var _common2 = _interopRequireDefault(_common); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _module = angular.module('components.cmsEditable', [_module3.default, 'ui.bootstrap', _common2.default]).directive('cmsEditable', directive).directive('cmsEditableTransclude', cmsEditableTransclude).directive('cmsDirectEditable', cmsDirectEditableDirective).run(run); run.$inject = ['$templateCache']; function run($templateCache) { $templateCache.put('editable-formly.html', _editableFormly2.default); } directive.$inject = ['cms']; function directive(cms) { function link(scope, element, attrs, elementController) { // resolve type and ref var _elementController$ge = elementController.getElement(); var type = _elementController$ge.type; var ref = _elementController$ge.ref; var vm = scope.vm; vm.showJson = function () { return false; }; prepareForm(cms, type, ref, scope); scope.$watch('model', function (v) { vm.value = _.get(scope, vm.property); vm.isValueUndefined = _.isEmpty(vm.value) && isNaN(vm.value); }, true); } return { require: '^^?cmsElement', restrict: 'A', scope: {}, bindToController: { property: '@cmsEditable' }, template: _tpl2.default, controllerAs: 'vm', controller: function controller() {}, link: link }; } // inheritance cmsDirectEditableDirective.$inject = ['cms', '$filter']; function cmsDirectEditableDirective(cms, $filter, $timeout) { function link(scope, element, attrs, elementController) { var vm = scope.vm; // resolve type and ref var type = vm.type; var ref = vm.ref; var property = vm.property.replace('model.', ''); var refKey = Types[type].checkAndGetRef(property); vm.showJson = function () { return vm._value instanceof Object && !refKey && !(vm._value instanceof Date); }; scope.$watch('vm._value', function (v) { if (v instanceof Date) { vm.value = $filter('date')(v, 'dd-MM-yyyy HH:mm'); } else { vm.value = v && refKey ? v[refKey] : v; } vm.isValueUndefined = typeof vm.value === 'undefined'; }, true); if (!ref) return; prepareForm(cms, type, ref, scope); } return { restrict: 'A', scope: {}, bindToController: { _value: '=cmsValue', property: '@cmsDirectEditable', type: '@cmsType', ref: '@cmsRef' }, template: _tpl2.default, controllerAs: 'vm', controller: function controller() {}, link: link }; } cmsEditableTransclude.$inject = ['cms', '$timeout']; function cmsEditableTransclude(cms, $timeout) { function link(scope, element, attrs, elementController) { var vm = scope.vm; // resolve type and ref var _ref = vm.element ? vm.element : elementController.getElement(); var type = _ref.type; var ref = _ref.ref; vm.showJson = function () { return false; }; prepareForm(cms, type, ref, scope); scope.$watch('model', function (v) { vm.value = _.get(scope, vm.property); vm.isValueUndefined = _.isEmpty(vm.value) && isNaN(vm.value); }, true); vm.hide = function () { $timeout(function () { return vm.show = false; }, 1000); }; } return { require: '^^?cmsElement', restrict: 'A', scope: {}, bindToController: { property: '@cmsEditableTransclude', withEditBtn: '@withEditBtn', element: '=element' }, transclude: true, template: '\n<span class="cms">\n <span ng-if="vm.withEditBtn !== \'true\'"\n popover-placement="bottom"\n popover-is-open="vm.isOpen"\n uib-popover-template="\'editable-formly.html\'"\n popover-append-to-body="true"\n style="cursor: pointer">\n <ng-transclude></ng-transclude>\n <span ng-show="vm.isValueUndefined && !vm.element" class="cms-empty-value">\n empty\n </span> \n </span>\n <span ng-if="vm.withEditBtn === \'true\'" style="position: relative">\n <button ng-style="{opacity:vm.show? 1: 0.1}"\n class="btn btn-white btn-xs"\n popover-placement="bottom"\n popover-is-open="vm.isOpen"\n uib-popover-template="\'editable-formly.html\'"\n popover-append-to-body="true"\n style="position: absolute;z-index: 1000;top:-24px"\n ng-mouseover="vm.show = true" \n ng-mouseout="vm.hide();">\n Edit\n </button>\n <ng-transclude \n ng-mouseover="vm.show = true" \n ng-mouseout="vm.hide();"\n ></ng-transclude>\n <span ng-show="vm.isValueUndefined && !vm.element" class="cms-empty-value">\n empty\n </span> \n </span> \n</span>\n', controllerAs: 'vm', controller: function controller() {}, link: link }; } function prepareForm(cms, type, ref, scope) { var vm = scope.vm; cms.getType(type, ref, function (model) { var form = Types[type].form; scope.model = model; vm.fields = [cms.findField(form, vm.property.split("\.")[1])]; vm.fields[0].templateOptions.focus = 'true'; vm.onSubmit = function () { cms.updateElement(type, scope.model); vm.isOpen = false; }; vm.options = { formState: { path: '' } }; }); } exports.default = _module.name; /***/ }, /* 14 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(19); /***/ }, /* 15 */ /***/ function(module, exports) { module.exports = "<div class=\"cms\">\n <form ng-submit=\"vm.onSubmit()\" novalidate class=\"form-horizontal cms-field-form\">\n <div style=\"overflow: auto;max-height: 500px;padding-right: 20px;\">\n <formly-form model=\"model\" fields=\"vm.fields\" form=\"vm.form\" options=\"vm.options\">\n </formly-form>\n </div>\n <button type=\"submit\" class=\"btn btn-primary submit-button\" ng-disabled=\"vm.form.$invalid\">Submit</button>\n <button type=\"button\" class=\"btn btn-primary\" ng-click=\"vm.isOpen = false\">Cancel</button>\n </form>\n <br ng-if=\"adminList === 'true'\">\n</div>" /***/ }, /* 16 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); __webpack_require__(17); var _config = __webpack_require__(18); var _config2 = _interopRequireDefault(_config); var _apiCheck2 = __webpack_require__(52); var _apiCheck3 = _interopRequireDefault(_apiCheck2); __webpack_require__(53); __webpack_require__(54); __webpack_require__(58); __webpack_require__(59); __webpack_require__(60); __webpack_require__(61); __webpack_require__(62); __webpack_require__(63); __webpack_require__(64); __webpack_require__(66); var _selectize = __webpack_require__(67); var _selectize2 = _interopRequireDefault(_selectize); __webpack_require__(68); var _tinycolor2 = __webpack_require__(69); var _tinycolor3 = _interopRequireDefault(_tinycolor2); __webpack_require__(70); __webpack_require__(71); __webpack_require__(72); var _codemirror = __webpack_require__(73); var _codemirror2 = _interopRequireDefault(_codemirror); __webpack_require__(74); __webpack_require__(75); __webpack_require__(76); __webpack_require__(77); __webpack_require__(78); __webpack_require__(79); __webpack_require__(80); __webpack_require__(81); __webpack_require__(82); __webpack_require__(83); __webpack_require__(84); __webpack_require__(85); __webpack_require__(86); __webpack_require__(87); __webpack_require__(88); var _tern2 = __webpack_require__(89); var _tern3 = _interopRequireDefault(_tern2); __webpack_require__(90); __webpack_require__(91); __webpack_require__(92); __webpack_require__(93); __webpack_require__(94); __webpack_require__(95); __webpack_require__(96); __webpack_require__(97); __webpack_require__(98); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } window.apiCheck = _apiCheck3.default; apiCheck.globalConfig.disabled = true; window.Selectize = _selectize2.default; window.tinycolor = _tinycolor3.default; window.CodeMirror = _codemirror2.default; window.tern = _tern3.default; var _module = angular.module('components.formly', ['formly', 'formlyBootstrap', 'ngJsTree', 'ui.select', 'ngSanitize', 'angular.filter', 'ui.codemirror', 'color.picker', 'dndLists', 'uiSwitch', 'selectize']).config(_config2.default).constant('size', { label: 'col-sm-2', input: 'col-sm-10' }); exports.default = _module.name; /***/ }, /* 17 */ /***/ function(module, exports, __webpack_require__) { module.exports = (__webpack_require__(2))(49); /***/ }, /* 18 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _panel = __webpack_require__(19); var _panel2 = _interopRequireDefault(_panel); var _repeatSection = __webpack_require__(20); var _repeatSection2 = _interopRequireDefault(_repeatSection); var _repeatSection3 = __webpack_require__(21); var _repeatSection4 = _interopRequireDefault(_repeatSection3); var _treeTemplate = __webpack_require__(22); var _treeTemplate2 = _interopRequireDefault(_treeTemplate); var _tree = __webpack_require__(23); var _tree2 = _interopRequireDefault(_tree); var _refSelect = __webpack_require__(24); var _refSelect2 = _interopRequireDefault(_refSelect); var _ref = __webpack_require__(25); var _ref2 = _interopRequireDefault(_ref); var _code = __webpack_require__(27); var _code2 = _interopRequireDefault(_code); var _code3 = __webpack_require__(28); var _code4 = _interopRequireDefault(_code3); var _array = __webpack_require__(34); var _array2 = _interopRequireDefault(_array); var _arrayTemplate = __webpack_require__(35); var _arrayTemplate2 = _interopRequireDefault(_arrayTemplate); var _table = __webpack_require__(36); var _table2 = _interopRequireDefault(_table); var _tableTemplate = __webpack_require__(37); var _tableTemplate2 = _interopRequireDefault(_tableTemplate); var _selectType = __webpack_require__(38); var _selectType2 = _interopRequireDefault(_selectType); var _selectElement = __webpack_require__(39); var _selectElement2 = _interopRequireDefault(_selectElement); var _selectProperty = __webpack_require__(40); var _selectProperty2 = _interopRequireDefault(_selectProperty); var _selectChildProperty = __webpack_require__(41); var _selectChildProperty2 = _interopRequireDefault(_selectChildProperty); var _selectFn = __webpack_require__(42); var _selectFn2 = _interopRequireDefault(_selectFn); var _select = __webpack_require__(43); var _select2 = _interopRequireDefault(_select); var _selectWhole = __webpack_require__(44); var _selectWhole2 = _interopRequireDefault(_selectWhole); var _multiSelect = __webpack_require__(45); var _multiSelect2 = _interopRequireDefault(_multiSelect); var _bsGridSelect = __webpack_require__(46); var _bsGridSelect2 = _interopRequireDefault(_bsGridSelect); var _bsGridSelect3 = __webpack_require__(47); var _bsGridSelect4 = _interopRequireDefault(_bsGridSelect3); var _checkbox = __webpack_require__(48); var _checkbox2 = _interopRequireDefault(_checkbox); var _saveContainersController = __webpack_require__(49); var _saveContainersController2 = _interopRequireDefault(_saveContainersController); var _recursive = __webpack_require__(50); var _recursive2 = _interopRequireDefault(_recursive); var _recursive3 = __webpack_require__(51); var _recursive4 = _interopRequireDefault(_recursive3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } config.$inject = ['formlyConfigProvider', 'size', '$rootScopeProvider']; function config(formlyConfigProvider, size, $rootScopeProvider) { $rootScopeProvider.digestTtl(20); var config = formlyConfigProvider; config.disableWarnings = true; config.removeWrapperByName('bootstrapLabel'); config.setWrapper({ name: 'bootstrapLabel', template: '\n <div>\n <label for="{{id}}" class="control-label {{!to.class ? \'' + size.label + '\' : \'\'}}"\n uib-tooltip-html=\'to.tooltip\'>\n {{to.label}} {{to.required ? \'*\' : \'\'}}\n </label>\n <div class="{{!to.class ? \'' + size.input + '\' : \'\'}}"><formly-transclude></formly-transclude></div>\n </div>\n ' }); config.removeWrapperByName('bootstrapHasError'); config.setWrapper({ name: 'bootstrapHasError', template: '\n <div ng-if="!to.class" class="clearfix"></div>\n <div ng-if="!to.class" ng-class="[\'form-group\',\'\']" ng-class="{\'has-error\': showError}" >\n <formly-transclude></formly-transclude>\n </div>\n \n <div ng-if="to.class" ng-class="[to.class]" ng-class="{\'has-error\': showError}" style="margin-bottom: 15px;">\n <formly-transclude></formly-transclude>\n </div>\n ' }); // Replace formlyBootstrap input field type to implement read-only forms config.setType({ name: 'input', template: '\n <div>\n <input ng-if="!formState.readOnly" class="form-control" ng-model="model[options.key]" >\n <p ng-if="formState.readOnly" class="form-control-static">{{model[options.key]}}</p>\n </div>\n ', wrapper: ['bootstrapLabel', 'bootstrapHasError'], overwriteOk: true }); config.setWrapper({ name: 'checkboxWrapper', template: '\n <div ng-if="!to.class" class="form-group"><div class="col-sm-offset-2 col-sm-10"><formly-transclude></formly-transclude></div></div>\n <div ng-if="to.class" class="form-group"><div ng-class="[to.class]"><formly-transclude></formly-transclude></div></div>\n ' }); config.setType({ name: 'checkbox', template: '\n <div class="checkbox">\n <label style="padding-left: 0px;">\n <switch ng-model="model[options.key]" class="green "></switch>\n </label>\n <span style="position: absolute">\n {{to.label}}\n {{to.required ? \'*\' : \'\'}}\n </span>\n </div>\n', wrapper: ['checkboxWrapper'], overwriteOk: true }); config.setWrapper({ name: 'panel', template: _panel2.default }); config.setType({ name: 'repeatSection', template: _repeatSection2.default, controller: _repeatSection4.default }); config.setType({ name: 'tree', template: _treeTemplate2.default, controller: _tree2.default, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'refSelect', template: _refSelect2.default, controller: _ref2.default, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'code', template: _code2.default, controller: _code4.default }); config.setType({ name: 'image', template: '\n <div class="row" style="padding-top:7px;">\n <div class="col-sm-7" style="padding-left: 0px;padding-right: 0px;">\n <div class="col-sm-6">\n <input type="text" class="form-control input-xs" ng-model="model[options.key]" placeholder="URL">\n </div>\n <div class="col-sm-6">\n <div class = "input-group">\n <input ng-model="filename" class="form-control input-xs"\n placeholder="filename">\n <span class = "input-group-btn">\n <button class="btn btn-white btn-sm" type="button" ng-click="download(filename)" style="margin: 0px;">\n Save\n </button>\n </span>\n </div>\n </div>\n </div>\n <div class="col-sm-5">\n <div class = "input-group">\n <input type="file" ngf-select ng-model="file"\n name="file" class="form-control input-xs"\n placeholder="file upload">\n <span class = "input-group-btn">\n <button class="btn btn-white btn-sm" type="button" ng-click="onFileUpload(file)" style="margin: 0px;">\n Up\n </button>\n </span>\n </div>\n \n \n </div>\n </div>\n \n <img ng-if="model[options.key]" ng-src="{{model[options.key]}}" width="40px" height="40px">\n ', controller: function controller($scope, cms, $http) { $scope.genName = true; $scope.onFileUpload = function (file) { //files: an array of files selected, each file has name, size, and type. cms.uploadFile(file, '.image', function () { $scope.model[$scope.options.key] = '.image/' + file.name; if ($scope.w) $scope.model[$scope.options.key] = $scope.model[$scope.options.key] + '?w=' + $scope.w; $scope.file = null; console.log('upload successful'); }); }; $scope.download = function (filename) { $http.post('api/saveimage', { url: $scope.model[$scope.options.key], filename: filename }).then(function () { $scope.model[$scope.options.key] = '.image/' + filename; if ($scope.w) $scope.model[$scope.options.key] = $scope.model[$scope.options.key] + '?w=' + $scope.w; }); }; }, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); /* <button class="btn btn-white" type="button" style="z-index: 10;position: fixed;margin-right: 33px;right: 0px;" > hex8</button> */ config.setType({ name: 'color', template: '\n <color-picker\n ng-init=""\n ng-model="model[options.key]"\n color-picker-format="\'hex\'"\n color-picker-alpha="true"\n color-picker-case="\'lower\'"\n ></color-picker>\n ', wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'array', template: _arrayTemplate2.default, controller: _array2.default }); config.setType({ name: 'tableSection', template: _tableTemplate2.default, controller: _table2.default, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'select', template: _select2.default, controller: function controller($scope) {}, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'select-ref-static', template: _select2.default, controller: function controller($scope, cms) { var type = $scope.options.templateOptions.Type; $scope.to.options = []; cms.loadElements(type, function () { var _$scope$to$options; (_$scope$to$options = $scope.to.options).push.apply(_$scope$to$options, _toConsumableArray(_.map(Types[type].list, function (e) { var value = cms.getTitle(type, e._id); return { value: value, name: $scope.to.labelProp ? e[$scope.to.labelProp] : value }; }))); }); }, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'select-whole', template: _selectWhole2.default, controller: function controller() {}, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'recursive', template: _recursive2.default, controller: _recursive4.default, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'select-type', template: _select2.default, controller: _selectType2.default, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'select-element', template: _selectWhole2.default, controller: _selectElement2.default, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'select-property', template: _select2.default, controller: _selectProperty2.default, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'select-child-property', template: _select2.default, controller: _selectChildProperty2.default, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'select-fn', template: _select2.default, controller: _selectFn2.default, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'multi-select', template: _multiSelect2.default, controller: function controller() {}, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'bs-grid-select', template: _bsGridSelect4.default, controller: _bsGridSelect2.default, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); config.setType({ name: 'save-containers', template: '\n <button class="btn btn-sm"\n type="button"\n ng-click="save()"\n ng-class="{\'btn-success\' : model[options.key],\'btn-white\' : !model[options.key]}"\n >save</button>\n <button class="btn btn-sm btn-danger"\n type="button"\n ng-click="restore()"\n ng-show="model[options.key]"\n >restore</button>\n ', controller: _saveContainersController2.default, overwriteOk: true, wrapper: ['bootstrapLabel', 'bootstrapHasError'] }); } exports.default = config; /***/ }, /* 19 */ /***/ function(module, exports) { module.exports = "<div class=\"clearfix\"></div>\n<div ng-if=\"!to.noPanel\"\n ng-show=\"!(model[options.key].null && to.null)\"\n class=\"cms-panel\" ng-init=\"state = {_show :true}\"\n style=\"position: relative;\">\n\n <button type=\"button\" class=\"btn btn-xs btn-white\" ng-if=\"to.null\"\n style=\"position: relative;right: 0px;margin-top: 15px;z-index: 1;\"\n ng-click=\"model[options.key].null = true;\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n\n <fieldset style=\"padding: 0 10px 10px 10px;position: relative;top:0px;\n border: 1px solid #eee;border-radius:4px;background-color: rgba(128, 128, 128, 0.03)\">\n <legend style=\"color: #337ab7;font-weight: 200;border: 0;margin-left: 10px;width: initial;padding: 0 5px;\"\n ng-if=\"to.label\"\n ng-style=\"{color:to.choice?'#8338b7':'#337ab7'}\">\n <span ng-show=\"to.choice\"\n uib-dropdown on-toggle=\"toggled(open)\">\n <span uib-dropdown-toggle\n uib-tooltip='{{to.tooltip}}'\n style=\"cursor: pointer\">\n {{options.templateOptions.label}}</span>\n <ul uib-dropdown-menu aria-labelledby=\"simple-dropdown\">\n <li ng-repeat=\"v in options.fieldGroup track by $index\"\n ng-show=\"v.key !== 'choice'\">\n <a ng-click=\"options.key && options.key !== ''? (model[options.key].choice = v.key): (model.choice = v.key);\">\n {{v.key}}</a>\n </li>\n </ul>\n\n </span>\n <span ng-if=\"!to.choice\"\n uib-tooltip='{{to.tooltip}}'>\n {{options.templateOptions.label}}\n </span>\n <button type=\"button\" ng-click=\"state._show = !state._show\"\n class=\"btn btn-white btn-xs\"\n style=\"border: none;background-color: transparent;\"\n ng-bind=\"state._show? '-': '+'\">\n </button>\n </legend>\n <div ng-show=\"state._show\">\n <formly-transclude></formly-transclude>\n </div>\n </fieldset>\n <br>\n</div>\n<div ng-if=\"to.noPanel\">\n <formly-transclude></formly-transclude>\n</div>\n<div ng-show=\"(model[options.key].null && to.null)\">\n <div class=\"form-group\">\n <div class=\"col-sm-offset-2 col-sm-10\">\n <button type=\"button\" class=\"btn btn-white btn-xs\"\n ng-click=\"model[options.key].null = false;\" style=\"z-index: 1;\"> add {{to.label}}\n </button>\n </div>\n </div>\n</div>\n" /***/ }, /* 20 */ /***/ function(module, exports) { module.exports = "<div class=\"clearfix\"></div>\n<div>\n <div dnd-list=\"model[options.key]\"\n class=\"cms-containers\" style=\"min-height: 0px\">\n <div class=\"repeatsection\"\n style=\"position: relative\"\n ng-repeat=\"element in model[options.key]\"\n dnd-draggable=\"element\"\n dnd-moved=\"model[options.key].splice($index, 1);\"\n dnd-effect-allowed=\"move\"\n ng-init=\"_fields = copyFields(to.fields)[0];_options = createFormOptions($index)\">\n\n\n\n <dnd-nodrag style=\"display: block\">\n <div style=\"position: absolute;right: 0px;z-index: 10;\" ng-style=\"{'margin-top': marginTop}\">\n <button type=\"button\" class=\"btn btn-xs btn-white\"\n ng-click=\"model[options.key].splice($index, 1)\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n <button type=\"button\" dnd-handle class=\"btn btn-xs btn-white\" style=\"cursor: move;\">:::</button>\n </div>\n\n <formly-field options=\"_fields\"\n form-options=\"{}\"\n form-state=\"_options.formState\"\n model=\"element\"\n form=\"form\">\n </formly-field>\n </dnd-nodrag>\n </div>\n </div>\n\n <div class=\"form-group\">\n <div class=\"col-sm-offset-2 col-sm-10\">\n <div ng-if=\"!choice\">\n <button type=\"button\" class=\"btn btn-white btn-xs\"\n ng-click=\"addNew()\">{{to.btnText}}\n </button>\n </div>\n <div ng-if=\"choice\">\n <div class=\"btn-group-xs\" uib-dropdown>\n <button type=\"button\" class=\"btn btn-white\" uib-dropdown-toggle>\n {{to.btnText}} <span class=\"caret\"></span>\n </button>\n <ul class=\"scrollable-menu\" uib-dropdown-menu role=\"menu\" aria-labelledby=\"btn-append-to-body\"\n style=\"z-index: 10000;\">\n <li style=\"padding: 0px 20px;\" ng-show=\"choice.length > 7\">\n <input type=\"text\" ng-model=\"_choice\" ng-click=\"$event.stopPropagation();\">\n </li>\n <li role=\"menuitem\" ng-repeat=\"c in choice | filter: _choice track by $index\">\n <a ng-click=\"addNewWithChoice(c); _choice = ''\">{{c}}</a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n\n\n</div>\n" /***/ }, /* 21 */ /***/ function(module, exports) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); controller.$inject = ['$scope']; function controller($scope) { $scope.choice = $scope.to.fields[0].templateOptions.choice; $scope.marginTop = $scope.choice ? '0px' : '15px'; if ($scope.choice) $scope.to.fields[0].templateOptions.noPanel = true; $scope.formOptions = { formState: $scope.formState }; $scope.addNew = function () { $scope.model[$scope.options.key] = $scope.model[$scope.options.key] || []; $scope.model[$scope.options.key].push({}); }; $scope.addNewWithChoice = function (choice) { $scope.model[$scope.options.key] = $scope.model[$scope.options.key] || []; $scope.model[$scope.options.key].push({ choice: choice }); }; $scope.copyFields = function (fields) { return angular.copy(fields); }; $scope.createFormOptions = function ($index) { var path = $scope.formState.path + '.' + $scope.options.key + '[' + $index + ']'; if (_.startsWith(path, '.')) path = path.substring(1); return { formState: { path: path, model: $scope.formState.model || $scope.model } }; }; } exports.default = controller; /***/ }, /* 22 */ /***/ function(module, exports) { module.exports = "<div js-tree=\"treeConfig\"\n ng-model=\"tree\"\n tree=\"data.treeInstance\"\n tree-events=\"check_node:check;uncheck_node:check;\"></div>\n" /***/ }, /* 23 */ /***/ function(module, exports) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); controller.$inject = ['$scope', '$timeout', 'size']; /** * * @param {{treeInstance}} $scope * @param $timeout */ function controller($scope, $timeout) { $scope.tree = $scope.options.templateOptions.options; $scope.treeConfig = { core: { themes: { name: 'proton', responsive: true }, animation: true, check_callback: true }, plugins: ["checkbox"], checkbox: { tie_selection: false }, version: 1 }; $timeout(function () { return $scope.treeConfig.version++; }); $scope.data = {}; $scope.check = function () { $timeout(function () { var _arr = $scope.data.treeInstance.jstree(true).get_checked(); _arr = _arr.map(function (id) { return $scope.data.treeInstance.jstree(true).get_node(id).text; }); $scope.model[$scope.options.key] = _arr; }); }; } exports.default = controller; /***/ }, /* 24 */ /***/ function(module, exports) { module.exports = "<selectize config='config' options='models' ng-model=\"_model\"></selectize>" /***/ }, /* 25 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _QueryBuilder = __webpack_require__(26); var _QueryBuilder2 = _interopRequireDefault(_QueryBuilder); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } controller.$inject = ['$scope', 'cms', '$timeout']; function controller($scope, cms, $timeout) { // resolve var type = $scope.options.templateOptions.Type; $scope.models = []; var labelProp = $scope.to.labelProp; $scope.config = { plugins: ['remove_button'], dropdownParent: 'body', valueField: '_id', labelField: labelProp, searchField: [labelProp], onChange: function onChange(val) { $timeout(function () { if (!$scope.to.multiple) { $scope.model[$scope.options.key] = _.find($scope.models, { _id: val }); } else { $scope.model[$scope.options.key] = val.map(function (_id) { return _.find($scope.models, { _id: _id }); }); } }); }, onInitialize: function onInitialize(selectize) { $scope.selectize = selectize; } }; if ($scope.to.async) { $scope.config.load = function (query, callback) { var queryBuilder = new _QueryBuilder2.default().limit(100).query({ _textIndex: $scope.to.makeRegex ? $scope.to.makeRegex(query) : new RegExp(query, 'i') }); cms.loadElements(type, function (list) { // $scope.models = list; callback(list); }, queryBuilder); }; } else if ($scope.to.showWithQuery) { $scope.config.load = function (query, callback) { if (!query || query === '') return callback([]); callback(Types[type].list); }; } else { cms.loadElements(type, function () { var _$scope$models; (_$scope$models = $scope.models).push.apply(_$scope$models, _toConsumableArray(Types[type].list)); }); } if (!$scope.to.multiple) $scope.config.maxItems = 1; if ($scope.to.sortField) { $scope.config.sortField = $scope.to.sortField; $scope.config.score = function (search) { return function (item) { if (item[$scope.to.labelProp].toLowerCase().indexOf(search.toLowerCase()) === -1) return 0; return 1000000 - item[$scope.to.sortField]; }; }; } $scope.$watch('model[\'' + $scope.options.key + '\']', function () { if ($scope.model[$scope.options.key] && $scope.model[$scope.options.key]._id) { $scope._model = $scope.model[$scope.options.key]._id; if (!_.includes($scope.models.map(function (obj) { return obj._id; }), $scope.model[$scope.options.key]._id)) { $scope.models.push($scope.model[$scope.options.key]); } } else if (Array.isArray($scope.model[$scope.options.key]) && $scope.model[$scope.options.key][0]._id) { $scope._model = $scope.model[$scope.options.key].map(function (m) { return m._id; }); } else if (!$scope.model[$scope.options.key]) { $scope._model = ''; if ($scope.selectize) $scope.selectize.clear(); } }); } exports.default = controller; /***/ }, /* 26 */ /***/ function(module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var QueryBuilder = function () { function QueryBuilder() { _classCallCheck(this, QueryBuilder); this._part = false; this._query = []; } _createClass(QueryBuilder, [{ key: "part", value: function part(_part) { this._part = _part; return this; } }, { key: "limit", value: function limit(_limit) { this._limit = _limit; return this; } }, { key: "page", value: function page(_page) { this._page = _page; return this; } }, { key: "sort", value: function sort(_sort) { if (_sort) this._sort = JSON.stringify(_sort); return this; } }, { key: "query", value: function query(_query) { if (_query) this._query.push(_query); return this; } }, { key: "search", value: function search(_search) { if (_search) this._search = _search; return this; } }, { key: "populate", value: function populate(_populate) { if (_populate) this._populate = _populate; return this; } }, { key: "lean", value: function lean() { this._lean = true; } }, { key: "build", value: function build() { this._skip = (this._page - 1) * this._limit; var params = ''; if (this._limit) params += "limit=" + this._limit; if (this._skip) params += "&skip=" + this._skip; if (this._query) params += "&query=" + JSON.stringify(this._query); if (this._sort) params += "&sort=" + this._sort; return params; } }, { key: "buildJson", value: function buildJson() { this._skip = (this._page - 1) * this._limit; var query = void 0; if (this._search && this._query) { query = { $and: [{ _textIndex: new RegExp(this._search, "i") }].concat(_toConsumableArray(this._query)) }; } else if (this._search) { query = { _textIndex: new RegExp(this._search, "i") }; } else if (this._query.length > 0) { query = { $and: [].concat(_toConsumableArray(this._query)) }; } var result = {}; if (this._limit) result.limit = this._limit; if (this._skip) result.skip = this._skip; if (query) result.query = query; if (this._sort) result.limit = this._sort; if (this._part) result.limit = this._part; if (this._populate) result.populate = this._populate; if (this._lean) result.lean = true; return result; } }]); return QueryBuilder; }(); exports.default = QueryBuilder; /***/ }, /* 27 */ /***/ function(module, exports) { module.exports = "<div class=\"form-group\">\n <label class=\"control-label {{size.label}}\" uib-tooltip='{{to.tooltip}}'>\n {{to.label}}\n </label>\n <div class=\"{{size.input}}\">\n\n <button type=\"button\"\n class=\"btn btn-white btn-xs\"\n style=\"margin-top: 7px;\"\n ng-click=\"showCode(); selectTab();\">\n {{!show? 'show code': 'hide code'}}\n </button>\n <span class=\"label label-danger\" ng-show=\"hasError\">The code has error</span>\n </div>\n\n</div>\n<ui-codemirror ng-show=\"show\"\n ng-model=\"_model\"\n ui-codemirror-opts=\"editorOptions\"\n ui-codemirror=\"{ onLoad : codemirrorLoaded }\"\n ui-refresh='refresh'>\n</ui-codemirror>\n<br>" /***/ }, /* 28 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function($) {'use strict'; Object.defineProperty(exports, "